好看的滑动显示插件-LATERAL ON-SCROLL SLIDING

所属分类:媒体-滑块和旋转

 37446  399  查看评论 (0)
分享到微信朋友圈
X
好看的滑动显示插件-LATERAL ON-SCROLL SLIDING ie兼容10

LATERAL ON-SCROLL SLIDING 是一款基于Jquery和css3开发的全屏滑动插件。将页面分为左边和右边,一边的内容是经过圆形遮罩的图片,而另一边则是相关的文字介绍。而且相邻行的图片和文字左右顺序是交替的。
随着浏览器滚动条向下移动,可视区下方的图片和文字将会以动画的形式从两边移动到靠近中线。当滚动条向上移动时,则下方淡出可视区的图片和文字将会以动画的形式向两边移开。

在左上方的固定位置有一个由圆形按钮组成的导航栏。点击某个按钮页面就会滚动到对应的位置。

预览图

width="474" height="300" title="滑动显示插件,LATERAL ON-SCROLL SLIDING" alt="滑动显示插件,LATERAL ON-SCROLL SLIDING"/>

width="474" height="300" title="滑动显示插件,LATERAL ON-SCROLL SLIDING" alt="滑动显示插件,LATERAL ON-SCROLL SLIDING"/>


使用步骤

1、引入以下的js和css文件

<link rel="stylesheet" type="text/css" href="css/demo.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
<!--[if lt IE 9]>
<link rel="stylesheet" type="text/css" href="css/styleIE.css" />
<![endif]-->
<script type="text/javascript" src="js/modernizr.custom.11333.js"></script>
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="js/jquery.easing.1.3.js"></script>


2、在head标签中加入以下js代码

 <script type="text/javascript">
    $(function() {
        var $sidescroll = (function() {
            // the row elements
            var $rows = $('#ss-container > div.ss-row'),
            // we will cache the inviewport rows and the outside viewport rows
            $rowsViewport,
            $rowsOutViewport,
            // navigation menu links
            $links = $('#ss-links > a'),
            // the window element
            $win = $(window),
            // we will store the window sizes here
            winSize = {},
            // used in the scroll setTimeout function
            anim = false,
            // page scroll speed
            scollPageSpeed = 2000,
            // page scroll easing
            scollPageEasing = 'easeInOutExpo',
            // perspective?
            hasPerspective = false,
            perspective = hasPerspective && Modernizr.csstransforms3d,
            // initialize function
            init = function() {
                // get window sizes
                getWinSize();
                // initialize events
                initEvents();
                // define the inviewport selector
                defineViewport();
                // gets the elements that match the previous selector
                setViewportRows();
                // if perspective add css
                if (perspective) {
                    $rows.css({
                        '-webkit-perspective': 600,
                        '-webkit-perspective-origin': '50% 0%'
                    });
                }
                // show the pointers for the inviewport rows
                $rowsViewport.find('a.ss-circle').addClass('ss-circle-deco');
                // set positions for each row
                placeRows();
 
            },
            // defines a selector that gathers the row elems that are initially visible.
            // the element is visible if its top is less than the window's height.
            // these elements will not be affected when scrolling the page.
            defineViewport = function() {
 
                $.extend($.expr[':'], {
 
                    inviewport: function(el) {
                        if ($(el).offset().top < winSize.height) {
                            return true;
                        }
                        return false;
                    }
 
                });
 
            },
            // checks which rows are initially visible
            setViewportRows = function() {
 
                $rowsViewport = $rows.filter(':inviewport');
                $rowsOutViewport = $rows.not($rowsViewport)
 
            },
            // get window sizes
            getWinSize = function() {
 
                winSize.width = $win.width();
                winSize.height = $win.height();
 
            },
            // initialize some events
            initEvents = function() {
 
                // navigation menu links.
                // scroll to the respective section.
                $links.on('click.Scrolling',
                function(event) {
 
                    // scroll to the element that has id = menu's href
                    $('html, body').stop().animate({
                        scrollTop: $($(this).attr('href')).offset().top
                    },
                    scollPageSpeed, scollPageEasing);
 
                    return false;
 
                });
 
                $(window).on({
                    // on window resize we need to redefine which rows are initially visible (this ones we will not animate).
                    'resize.Scrolling': function(event) {
 
                        // get the window sizes again
                        getWinSize();
                        // redefine which rows are initially visible (:inviewport)
                        setViewportRows();
                        // remove pointers for every row
                        $rows.find('a.ss-circle').removeClass('ss-circle-deco');
                        // show inviewport rows and respective pointers
                        $rowsViewport.each(function() {
 
                            $(this).find('div.ss-left').css({
                                left: '0%'
                            }).end().find('div.ss-right').css({
                                right: '0%'
                            }).end().find('a.ss-circle').addClass('ss-circle-deco');
 
                        });
 
                    },
                    // when scrolling the page change the position of each row 
                    'scroll.Scrolling': function(event) {
 
                        // set a timeout to avoid that the
                        // placeRows function gets called on every scroll trigger
                        if (anim) return false;
                        anim = true;
                        setTimeout(function() {
 
                            placeRows();
                            anim = false;
 
                        },
                        10);
 
                    }
                });
 
            },
            // sets the position of the rows (left and right row elements).
            // Both of these elements will start with -50% for the left/right (not visible)
            // and this value should be 0% (final position) when the element is on the
            // center of the window.
            placeRows = function() {
 
                // how much we scrolled so far
                var winscroll = $win.scrollTop(),
                // the y value for the center of the screen
                winCenter = winSize.height / 2 + winscroll;
 
                // for every row that is not inviewport
                $rowsOutViewport.each(function(i) {
 
                    var $row = $(this),
                    // the left side element
                    $rowL = $row.find('div.ss-left'),
                    // the right side element
                    $rowR = $row.find('div.ss-right'),
                    // top value
                    rowT = $row.offset().top;
 
                    // hide the row if it is under the viewport
                    if (rowT > winSize.height + winscroll) {
 
                        if (perspective) {
 
                            $rowL.css({
                                '-webkit-transform': 'translate3d(-75%, 0, 0) rotateY(-90deg) translate3d(-75%, 0, 0)',
                                'opacity': 0
                            });
                            $rowR.css({
                                '-webkit-transform': 'translate3d(75%, 0, 0) rotateY(90deg) translate3d(75%, 0, 0)',
                                'opacity': 0
                            });
 
                        } else {
 
                            $rowL.css({
                                left: '-50%'
                            });
                            $rowR.css({
                                right: '-50%'
                            });
 
                        }
 
                    }
                    // if not, the row should become visible (0% of left/right) as it gets closer to the center of the screen.
                    else {
 
                        // row's height
                        var rowH = $row.height(),
                        // the value on each scrolling step will be proporcional to the distance from the center of the screen to its height
                        factor = (((rowT + rowH / 2) - winCenter) / (winSize.height / 2 + rowH / 2)),
                        // value for the left / right of each side of the row.
                        // 0% is the limit
                        val = Math.max(factor * 50, 0);
 
                        if (val <= 0) {
 
                            // when 0% is reached show the pointer for that row
                            if (!$row.data('pointer')) {
 
                                $row.data('pointer', true);
                                $row.find('.ss-circle').addClass('ss-circle-deco');
 
                            }
 
                        } else {
 
                            // the pointer should not be shown
                            if ($row.data('pointer')) {
 
                                $row.data('pointer', false);
                                $row.find('.ss-circle').removeClass('ss-circle-deco');
 
                            }
 
                        }
 
                        // set calculated values
                        if (perspective) {
 
                            var t = Math.max(factor * 75, 0),
                            r = Math.max(factor * 90, 0),
                            o = Math.min(Math.abs(factor - 1), 1);
 
                            $rowL.css({
                                '-webkit-transform': 'translate3d(-' + t + '%, 0, 0) rotateY(-' + r + 'deg) translate3d(-' + t + '%, 0, 0)',
                                'opacity': o
                            });
                            $rowR.css({
                &nbs
相关插件-滑块和旋转

css3滑动按钮

css3滑动开关按钮效果,带回调函数
  滑块和旋转
 31076  342

jQuery鱼骨图

jQuery鱼骨图插件fishBone.js,横向滑块轮播
  滑块和旋转
 37227  378

手机仿微信下滑

手机仿微信下滑
  滑块和旋转
 36544  420

jQuery互相限制边界的多滑块选区

jQuery滑块不重合 选值边界重合,带有初始化滑块位置功能。
  滑块和旋转
 25242  306

讨论这个项目(0)回答他人问题或分享插件使用方法奖励jQ币 评论用户自律公约

😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
取消回复