各个方向的轮播图

21 篇文章 0 订阅
4 篇文章 0 订阅

各个方向的轮播图 :

在这里插入图片描述
在这里插入图片描述

html

<!DOCTYPE html>
<html>

<head lang="en">
    <meta charset="UTF-8">
    <title>上下左右无缝滚动jQuery插件</title>
    <meta name="keywords" content="上下左右,无缝滚动,jQuery插件" />
    <meta name="description" content="上下左右无缝滚动jQuery插件下载。实现上下左右自动滚动、无缝滚动。" />
    <meta name="author" content="js代码(www.jsdaima.com)" />
    <meta name="copyright" content="js代码(www.jsdaima.com)" />
    <!-- <script type="text/javascript" src="/static/js/protect.js"></script> -->
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
    <!-- <link rel="stylesheet" href="css/demo.css" /> -->
    <link rel="stylesheet" href="demo.css" />
</head>

<body>
    <div class="container">
        <p>左右滚动</p>
        <div class="roll-wrap roll_row" id="a">
            <ul class="roll__list" style="position: absolute; left: 0; top: 0;">
                <li>1</li>
                <li style="width: 200px;">2</li>
                <li>3</li>
                <li>4</li>
                <li>5</li>
                <li>6</li>
                <li>7</li>
                <li>8</li>
                <!--<li>9</li>
            <li>10</li>
            <li>11</li>-->
            </ul>
            <a class="control pre" href="javascript:;">&lt;</a>
            <a class="control next" href="javascript:;">&gt;</a>
        </div>
        <p>左右自动滚动</p>
        <div class="roll-wrap roll_row" id="b">
            <ul class="roll__list" style="position: absolute; left: 0; top: 0;">
                <li>1</li>
                <li>2</li>
                <li>3</li>
                <li>4</li>
                <li>5</li>
                <li>6</li>
                <li>7</li>
                <li>8</li>
                <li>9</li>
                <li>10</li>
                <li>11</li>
            </ul>
            <a class="control pre" href="javascript:;">&lt;</a>
            <a class="control next" href="javascript:;">&gt;</a>
        </div>
        <p>上下滚动</p>
        <div class="roll-wrap roll_col" id="c">
            <ul class="roll__list" style="position: absolute; left: 0; top: 0;">
                <li class="li-1">1</li>
                <li class="li-2">2</li>
                <li class="li-3">3</li>
                <li class="li-4">4</li>
            </ul>
            <a class="control pre" href="javascript:;">&lt;</a>
            <a class="control next" href="javascript:;">&gt;</a>
        </div>
        <p>上下自动滚动</p>
        <div class="roll-wrap roll_col h600" id="d">
            <ul class="roll__list" style="position: absolute; left: 0; top: 0;">
                <li class="li-1">1</li>
                <li class="li-2">2</li>
                <li class="li-3">3</li>
                <li class="li-4">4</li>
                <li class="li-1">5</li>
                <li class="li-2">6</li>
                <li class="li-3">7</li>
                <li class="li-4">8</li>
                <li class="li-2">9</li>
            </ul>
            <a class="control pre" href="javascript:;">&lt;</a>
            <a class="control next" href="javascript:;">&gt;</a>
        </div>
        <p>不间断向左滚动</p>
        <div class="roll-wrap roll_row" id="e">
            <ul class="roll__list" style="position: absolute; left: 0; top: 0;">
                <li>1</li>
                <li style="width: 200px;">2</li>
                <li>3</li>
                <li style="width: 400px;">4</li>
                <li>5</li>
                <li>6</li>
                <li>7</li>
                <li>8</li>
                <li>9</li>
            </ul>
        </div>
        <p>不间断向右滚动</p>
        <div class="roll-wrap roll_row" id="f">
            <ul class="roll__list" style="position: absolute; right: 0; top: 0; width: 1480px">
                <li>1</li>
                <li style="width: 200px;">2</li>
                <li>3</li>
                <li style="width: 400px;">4</li>
                <li>5</li>
                <li>6</li>
                <li>7</li>
                <li>8</li>
                <li>9</li>
            </ul>
        </div>
        <p>不间断向上滚动</p>
        <div class="roll-wrap roll_col" id="g">
            <ul class="roll__list" style="position: absolute; left: 0; top: 0;">
                <li class="li-1">1</li>
                <li class="li-2">2</li>
                <li class="li-3">3</li>
                <li class="li-4">4</li>
            </ul>
        </div>
        <p>不间断向下滚动</p>
        <div class="roll-wrap roll_col" id="h">
            <ul class="roll__list" style="position: absolute; left: 0; bottom: 0;">
                <li class="li-1">1</li>
                <li class="li-2">2</li>
                <li class="li-3">3</li>
                <li class="li-4">4</li>
            </ul>
        </div>
    </div>
    <script src="rollslide.js"></script>
    <script>
        $('#a').rollSlide({
            orientation: 'left',
            num: 1,
            v: 1000,
            space: 3000,
            isRoll: false
        });
        $('#b').rollSlide({
            orientation: 'right',
            num: 2,
            v: 1500,
            space: 3000,
            isRoll: true
        });
        $('#c').rollSlide({
            orientation: 'top',
            num: 1,
            v: 1500,
            //space: 500,
            isRoll: true
        });
        $('#d').rollSlide({
            orientation: 'bottom',
            num: 3,
            v: 1500,
            space: 1000,
            isRoll: true
        });
        $('#e').rollNoInterval().left();
        $('#f').rollNoInterval().right();
        $('#g').rollNoInterval().top();
        $('#h').rollNoInterval().bottom();
    </script>
</body>

</html>

css

* {
    font-family: 'Microsoft Yahei';
}

body,
ul {
    margin: 0;
    padding: 0;
}

ul {
    list-style: none;
}

p {
    margin-top: 40px;
}

.container {
    margin: 0 auto;
    width: 940px;
}

.roll-wrap:hover .control {
    display: block;
}

.roll-wrap {
    position: relative;
    width: 100%;
    height: 100px;
    overflow: hidden;
}

.roll-wrap .roll__list {}

.roll_row .roll__list::before,
.roll_row .roll__list::after {
    content: "";
    display: table;
    line-height: 0;
}

.roll_row .roll__list::after {
    clear: both;
}

.roll_row .roll__list {
    width: 9999px;
}

.roll_row .roll__list li {
    float: left;
    display: block;
    margin-right: 20px;
    width: 100px;
    height: 100px;
    line-height: 100px;
    font-weight: bold;
    font-size: 30px;
    text-align: center;
    color: #fff;
    background-color: #ff9900;
}

.control {
    position: absolute;
    top: 30px;
    display: none;
    padding: 10px 5px;
    font-weight: bold;
    text-decoration: none;
    color: #fff;
    background-color: rgba(0, 0, 0, .3);
}

.control:hover {
    background-color: rgba(0, 0, 0, .5);
}

.control.pre {
    left: 5px;
}

.control.next {
    right: 5px;
}

.roll_col {
    width: 100%;
    height: 200px;
    overflow: hidden;
}

.roll_col .roll__list {
    width: 100%;
}

.h600 {
    height: 600px;
}

.roll_col li {
    display: block;
    height: 200px;
    line-height: 200px;
    font-size: 30px;
    font-weight: bold;
    text-align: center;
    color: #fff;
    background-color: #ff9900;
}

.roll_col .li-2 {
    background-color: #0099ff;
}

.roll_col .li-3 {
    background-color: #ff0099;
}

.roll_col .li-4 {
    background-color: #00ff99;
}

.roll_col .control {
    top: 80px;
}

index.js

let requests = require('requests');
let fs = require('fs') //fs模块
let path = require('path') //path模块
requests('https://www.jsdaima.com/Uploads/js/201803/1522376449/js/rollslide.js')
    // 1. https://www.jsdaima.com/js/demo/1358.html  // 爬取首页
    // 2. https://www.jsdaima.com/Uploads/js/201803/1522376449/css/demo.css  //爬取css
    // 3. https://www.jsdaima.com/Uploads/js/201803/1522376449/js/rollslide.js  //爬取js
    .on('data', function(chunk) {
        console.log(chunk)
        fs.writeFile(path.resolve(__dirname, 'rollslide.js'), chunk, () => {
            // 1.path.resolve(__dirname, 'index.html')  // 爬取首页
            // 2.path.resolve(__dirname, 'demo.css')   //爬取css
            // 3.path.resolve(__dirname, 'rollslide.js')  //爬取js
            console.log('保存成功');

        })
    })

/* 
爬取成功后把路径改成同级目录,即可打开

index.html
    <link rel="stylesheet" href="css/demo.css" />   //原来
    <link rel="stylesheet" href="demo.css" />       //现在

    <script src="js/rollslide.js"></script> //原来
    <script src="rollslide.js"></script>    //现在
    
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script> //引入jQuery
*/

rollslide.js

/**
 * Created by f on 2015/5/8.
 */
(function($) {
    $.fn.rollSlide = function(obj) {
        var $self = this,
            orientation = obj.orientation || 'left', //滚动方式
            num = obj.num || 1, //滚动数量
            v = (typeof obj.v === 'number') ? obj.v : 0, //滚动速度
            minTime = (typeof obj.space === 'number') ? ((obj.space >= 100) ? obj.space : 100) : 100, //最小间隔为 100 ms ,
            space = minTime + v || 5000 + v, //滚动间隔  默认 5000ms
            isRoll = obj.isRoll, //自动播放
            isStart = true,
            roll = function(ori, n, v) {
                var $ul = $self.find('.roll__list'),
                    $item = $ul.find('li'),
                    range = 0,
                    i, len = $item.length,
                    sliceItem = [],
                    cloneSliceItem = [],
                    startTime = (new Date()).getTime(),
                    //存放滚动过的 item
                    memory = function() {
                        var arr = [];

                        if (ori === 'left' || ori === 'top') {
                            for (i = 0; i < n; i++) {
                                range += ori === 'left' ? $($item[i]).outerWidth(true) : $($item[i]).outerHeight(true); // left 取 width,top 取 height
                                arr.push($item[i]);
                            }
                        } else if (ori === 'right' || ori === 'bottom') {
                            for (i = len - n; n > 0; n--, i++) {
                                range += ori === 'right' ? $($item[i]).outerWidth(true) : $($item[i]).outerHeight(true);
                                arr.push($item[i]);
                            }
                        }
                        return arr;
                    };

                isStart = false; //关闭滚动
                sliceItem = memory();
                cloneSliceItem = $(sliceItem).clone();
                //判断往哪个方向移动
                switch (ori) {
                    case 'left':
                        $ul.append(cloneSliceItem);
                        $ul.animate({
                            'left': -range + 'px'
                        }, v, function() {
                            $(this).css({ 'left': 0 });
                            $(sliceItem).remove();
                            isStart = true; //开启滚动
                        });
                        break;
                    case 'right':
                        $ul.prepend(cloneSliceItem);
                        $ul.css('left', -range + 'px');
                        $ul.animate({
                            'left': 0
                        }, v, function() {
                            $(sliceItem).remove();
                            isStart = true; //开启滚动
                        });
                        break;
                    case 'top':
                        $ul.append(cloneSliceItem);
                        $ul.animate({
                            'top': -range + 'px'
                        }, v, function() {
                            $(this).css({ 'top': 0 });
                            $(sliceItem).remove();
                            isStart = true; //开启滚动
                        });
                        break;
                    case 'bottom':
                        $ul.prepend(cloneSliceItem);
                        $ul.css('top', -range + 'px');
                        $ul.animate({
                            'top': 0
                        }, v, function() {
                            $(sliceItem).remove();
                            isStart = true; //开启滚动
                        });
                        break;
                }
            },
            init = function() {
                var $ul = $self.find('.roll__list'),
                    $item = $ul.find('li'),
                    len = $item.length,
                    timer;

                num = num <= len ? num : len; //滚动个数超过列表数,取列表数
                if (len > 1) {
                    $self.on('click', '.pre', function() {
                        if (isStart) {
                            //横向滚动
                            if (orientation === 'left' || orientation === 'right') {
                                roll('right', num, v);
                            } else { //纵向滚动
                                roll('bottom', num, v);
                            }
                        }
                    }).
                    on('click', '.next', function() {
                        if (isStart) {
                            //横向滚动
                            if (orientation === 'left' || orientation === 'right') {
                                roll('left', num, v);
                            } else { //纵向滚动
                                roll('top', num, v);
                            }
                        }
                    }).
                    hover(function() {
                        clearInterval(timer);
                    }, function() {
                        if (isRoll) {
                            timer = setInterval(function() {
                                roll(orientation, num, v);
                            }, space);
                        }
                    }).
                    trigger('mouseout');
                }
            };

        init();
    };
    $.fn.rollNoInterval = function() {
        var $self = this,
            $ul = $self.find('.roll__list'),
            $item = $ul.find('li'),
            len = $item.length,
            timer,
            left = function() {
                var offset, i,
                    range,
                    $sliceItem;

                $sliceItem = $($item[0]);
                range = $sliceItem.outerWidth(true);
                timer = setInterval(function() {
                    offset = $ul.css('left');
                    offset = parseInt(offset);
                    if (offset > -range) {
                        i = offset - 1;
                        $ul.css('left', i + 'px');
                        offset = $ul.css('left');
                    } else {
                        $sliceItem.detach();
                        $ul.css('left', 0);
                        $ul.append($sliceItem);
                        $sliceItem = $($ul.find('li')[0]);
                        range = $sliceItem.outerWidth(true);
                    }
                }, 50);
            },
            right = function() {
                var offset, i,
                    range,
                    $sliceItem;

                $sliceItem = $($item[len - 1]);
                range = $sliceItem.outerWidth(true);
                timer = setInterval(function() {
                    offset = $ul.css('right');
                    offset = parseInt(offset);
                    if (offset > -range) {
                        i = offset - 1;
                        $ul.css('right', i + 'px');
                        offset = $ul.css('right');
                    } else {
                        $sliceItem.detach();
                        $ul.css('right', 0);
                        $ul.prepend($sliceItem);
                        $sliceItem = $($ul.find('li')[len - 1]);
                        range = $sliceItem.outerWidth(true);
                    }
                }, 50);
            },
            top = function() {
                var offset, i,
                    range,
                    $sliceItem;

                $sliceItem = $($item[0]);
                range = $sliceItem.outerHeight(true);
                timer = setInterval(function() {
                    offset = $ul.css('top');
                    offset = parseInt(offset);
                    if (offset > -range) {
                        i = offset - 1;
                        $ul.css('top', i + 'px');
                        offset = $ul.css('top');
                    } else {
                        $sliceItem.detach();
                        $ul.css('top', 0);
                        $ul.append($sliceItem);
                        $sliceItem = $($ul.find('li')[0]);
                        range = $sliceItem.outerHeight(true);
                    }
                }, 50);
            },
            bottom = function() {
                var offset, i,
                    range,
                    $sliceItem;

                $sliceItem = $($item[len - 1]);
                range = $sliceItem.outerHeight(true);
                timer = setInterval(function() {
                    offset = $ul.css('bottom');
                    offset = parseInt(offset);
                    if (offset > -range) {
                        i = offset - 1;
                        $ul.css('bottom', i + 'px');
                        offset = $ul.css('bottom');
                    } else {
                        $sliceItem.detach();
                        $ul.css('bottom', 0);
                        $ul.prepend($sliceItem);
                        $sliceItem = $($ul.find('li')[len - 1]);
                        range = $sliceItem.outerHeight(true);
                    }
                }, 50);
            },
            init = function() {
                $self.hover(function() {
                    clearInterval(timer);
                }, function() {

                });
            };

        //init();
        return {
            left: left,
            right: right,
            top: top,
            bottom: bottom
        }
    }
})(jQuery);
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Qt是一个流行的C++跨平台应用程序开发框架,提供了丰富的GUI控件供开发者使用。 1. QLabel(标签):用于显示文本或图像,常用于界面的标题、说明等文字性内容的显示。 2. QPushButton(按钮):用于用户与程序交互的控件,常用于添加点击事件触发相应操作。 3. QLineEdit(单行文本框):用于输入和编辑单行文本,方便用户输入文本信息。 4. QTextEdit(多行文本框):用于输入和编辑多行文本,可以进行格式化编辑和显示大量文本信息。 5. QRadioButton(单选按钮):提供一组互斥的选项供用户选择,只能选择其中一个。 6. QCheckBox(复选框):提供多个选项供用户选择,可以同时选择多个。 7. QComboBox(下拉框):提供一个下拉列表供用户选择,可以通过点击选择项或输入文本来选择。 8. QListWidget(列表框):用于显示一系列文本或图像,支持单选或多选。 9. QSlider(滑动条):提供一个滑动条供用户通过拖动来选择一个数值。 10. QProgressBar(进度条):显示任务进度的控件,可以通过设置进度值来反映任务的完成情况。 11. QFileDialog(文件对话框):用于选择文件或目录的对话框,常用于文件的打开和保存操作。 12. QTabWidget(选项卡):提供一组选项卡供用户切换,每个选项卡上可以放置不同的控件和内容。 总之,Qt提供了一系列常用的GUI控件,可以方便开发者进行界面设计和用户交互,使得应用程序的开发更加快速、高效。 ### 回答2: QT中的控件是用于构建用户界面的基本元素。下面是一些常见的QT控件及其作用: 1. QLabel(标签):用来显示文本或图像。可以设置文本大小、字体样式和颜色。 2. QPushButton(按钮):用户可以点击按钮来触发响应的事件。可以设置按钮的文本、图标和大小。 3. QLineEdit(文本框):用于用户输入单行文本。可以设置初始文本、最大长度和校验方法。 4. QTextEdit(文本编辑框):用于显示和编辑多行文本。支持格式化文本、插入图片和链接。 5. QRadioButton(单选按钮):用于从一组选项中选择一个选项。可以设置选项文本和默认选择项。 6. QCheckBox(复选框):用于允许用户选择一个或多个选项。可以设置选项文本和默认选择项。 7. QComboBox(下拉框):用于选择一项或多项选项。可以设置选项文本和默认选中项。 8. QProgressBar(进度条):用于显示任务的进度。可以根据任务进度设置进度条的值。 9. QSlider(滑动条):用于通过滑动来选择一个值。可以设置滑动条的范围和默认值。 10. QSpinBox(数字框):用于输入整数值。可以设置数字范围和初始值。 11. QMainWindow(主窗口):用于创建应用程序的主窗口。可以包含菜单栏、工具栏和状态栏。 这些只是一些常见的QT控件,QT还提供了更多的控件和自定义控件的能力。通过组合和调整这些控件,可以创建各种复杂的用户界面。 ### 回答3: Qt是一款跨平台的C++应用程序框架,其中包含了丰富的控件(Widget),可以用于创建各种图形用户界面(GUI)程序。下面是Qt中一些常见控件的作用: 1. QLabel(标签):用于显示文本或图像,可以作为其他控件的说明或注释。 2. QPushButton(按钮):用于触发事件或执行特定操作,如保存、取消等。 3. QLineEdit(单行文本输入框):允许用户输入单行文本,比如用户名、密码等。 4. QTextEdit(多行文本输入框):允许用户输入多行文本,可以处理更复杂的文本输入。 5. QCheckBox(复选框):提供了二选一的选择,用户可以勾选或取消勾选。 6. QRadioButton(单选按钮):提供了多项选择中的一项,用户只能选择其中一个。 7. QComboBox(下拉列表框):显示一系列选项的下拉菜单,用户可以从中选择。 8. QSpinBox(数字输入框):用于输入整数或浮点数,通常配合上下箭头。 9. QSlider(滑动条):用于从一个范围中选择一个值,用户可以通过拖动来调整值。 10. QProgressBar(进度条):用于显示操作的进度,可以是水平或垂直方向的。 这些控件只是Qt中的一小部分,Qt还提供了其他更多的控件,如QTableWidget(表格)、QTreeWidget(树形视图)、QListView(列表视图)、QCalendarWidget(日历)等,以满足不同程序的需求。使用这些控件,开发者可以轻松构建出直观、交互性强的图形界面,提升用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端酱紫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值