1

このコードを「each」から「for」に書き換える方法:

myDiv.scroll(function () { 
    $nower = (($(this).scrollTop() + $start_pr) / $skorost) + $ugol * 8;
    $.each(ImgDiv, function(index) {
        $(this).offset({ top: Math.cos((index + 1) * $ugol + $nower) * $size_dug + $smes_y, left: Math.sin(-((index + 1) * $ugol + $nower)) * $size_dug + $smes_x });
    });
});

私は試していますが、うまくいきません: =(

myDiv.scroll(function () {  
    var $nower = (($(this).scrollTop() + $start_pr) / $skorost) + $ugol * 8;
    for (var ink = 0, len = ImgDiv.length; ink < len; ink++) {
        ImgDiv[ink].offset({top: Math.cos((ink + 1) * $ugol + $nower) * $size_dug + $smes_y, left: Math.sin(-((ink + 1) * $ugol + $nower)) * $size_dug + $smes_x });
    };
});
4

1 に答える 1

2

おそらく、jQuery オブジェクトではなく object でjQuery関数 offsetを呼び出そうとしています。以下のようにオブジェクトをオブジェクトにDOM変換します。DOMjQuery

変化する

ImgDiv[ink]

$(ImgDiv[ink])

あなたのコードは

myDiv.scroll(function () {  
        var $nower=(($(this).scrollTop()+$start_pr)/$skorost)+$ugol*8;
        for (var ink=0, len = ImgDiv.length; ink < len; ink++)
        {
        $(ImgDiv[ink]).offset({top: Math.cos((ink+1)*$ugol+$nower)*$size_dug+$smes_y, left: Math.sin(-((ink+1)*$ugol+$nower))*$size_dug+$smes_x });
        };
    });
于 2013-02-14T09:40:49.770 に答える