【问题标题】:Circular slider with scrolling (jquery+css3)带滚动的圆形滑块 (jquery+css3)
【发布时间】:2013-02-21 15:28:19
【问题描述】:

制作一个带有滚动的圆形滑块。 http://magart.com.ua/circle/ 在 Mozilla 中测试!

有一个问题,如果你只是刷新页面,一切都会顺利进行。 (您必须滚动并刷新页面才能看到它)。在 Mozilla 中测试!但是如果滚动,就会出现粗糙度。如何解决问题?

部分代码:

myDiv.scroll(function () { 
    $newh=$('#wrapper_sl').height()+$(this).scrollTop(); //eternal scroll
    $('#wrapper_sl').height($newh); //eternal scroll
    var $nower=(($(this).scrollTop()+$start_pr)/$skorost)+$ugol*8;
    for (var ink=0, len = $kolvo; ink < len; ink++)
    {
    $rad=((ink)*$ugol+$nower);
    $deg=$rad*360/(2*Math.PI)+270;

    $(ImgDiv[ink]).offset({top: Math.cos(($rad))*$size_dug+$smes_y, left: Math.sin(-($rad))*($size_dug)+$smes_x }).css({'transform':'skewX(-'+$deg+'deg) rotateX('+$deg+'deg)'});
    };
});

【问题讨论】:

  • 我实际上在 Firefox 中看不到这个问题,但在 Chrome 中它非常粗糙。
  • 只刷新页面,不要滚动。图片将顺利排列成一个圆圈...@DevinYoung

标签: javascript jquery css scroll


【解决方案1】:

尝试给 css3 过渡一些时间。

transition: all 0.5s;
-webkit-transition: all 0.5s;
-moz-transition: all 0.5s;

还要注意,永恒滚动部分会增加 wrapper 的高度,因此每次滚动后,旋转速度都会增加。尽量保持wrapper的高度不变,每次滚动后将scrolltop设置为0。

--编辑

我希望这可以帮助你。请参阅jsFiddle中的演示

$(function () {
    rotate();
    myDiv.bind('scroll.rot', rotate);
    myDiv.bind('scroll', $.debounce(250, function () {
        $start_pr += $(this).scrollTop();
        $(this).scrollTop(0);
    }));
});

function rotate() {
    $.debounce(250, true, function () {});
    var $nower = (($(this).scrollTop() + $start_pr) / $skorost) + $ugol * 8;
    for (var ink = 0, len = $kolvo; ink < len; ink++) {
        $rad = ((ink) * $ugol + $nower);
        $deg = $rad * 360 / (2 * Math.PI) + 270;

        $('#info').html(
            '$rad: ' + $rad +
            '<br/>$deg: ' + $deg);

        $(ImgDiv[ink]).offset({
            top: Math.cos(($rad)) * $size_dug + $smes_y,
            left: Math.sin(-($rad)) * ($size_dug) + $smes_x
        }).css({
            'transform': 'skewX(-' + $deg + 'deg) rotateX(' + $deg + 'deg)'
        });
    };
}

这是jsFiddle中的来源

【讨论】:

  • 是的 =( 但那是我最好的主意/解决方案。如何重置滚动条,但保持相同的位置?)
  • 滚动已解决)谢谢!但仍然跳跃和......差异...... =(
  • 哦...另一个问题...我设置为块“位置:绝对”并将“偏移”替换为“css”并且它停止跳跃=)但是...当我无法滚动时超过块... =(((((((((((((((((((((((((((((((((()))
猜你喜欢
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-25
  • 2015-05-19
相关资源
最近更新 更多