iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >vue+rem自定义轮播图效果实现
  • 920
分享到

vue+rem自定义轮播图效果实现

2023-06-20 12:06:53 920人浏览 安东尼
摘要

本篇内容主要讲解“Vue+rem自定义轮播图效果实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue+rem自定义轮播图效果实现”吧!使用vue+rem自定义轮播图的实现,供大家参考,具体内

本篇内容主要讲解“Vue+rem自定义轮播图效果实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue+rem自定义轮播图效果实现”吧!

使用vue+rem自定义轮播图的实现,供大家参考,具体内容如下

单位使用rem进行页面布局,在动态计算轮播图整体宽度时,需要把px转换成rem,挺麻烦的。

效果如下:如果当前图片不是第一张和最后一张,刚好可以看到当前图片上一张和下一张的一部分。

vue+rem自定义轮播图效果实现

具体代码如下

<template>    <div class="constructionUp">        <div class="pub-hd">            <h3>施工升级包</h3>            <h4>额外服务项目</h4>        </div>        <div id="activityDiv">            <ul num="0" id="activityUl">               <li class="activityLi" v-for="(v,i) in listData" :key="i" @touchstart.capture="touchStart" @touchend.capture="touchEnd">                    <img src="static/imgs/package/bitmap.jpg">                    <div class="liText">                        <p class="liTtitle">{{v.lititle}}</p>                        <p class="liDes">1、开工后,客户、设计师、项目管家三方进行现场交底,若有个性化项目变更,执行正常的客户变更手续(参照:客户变更告知书);</p>                        <p class="liDes">2、交底后,若客户原因要求个性化项目变更,除了承担个性化项目的费用外,还要增/次的调拨费用。</p>                         <p class="liPrice">                            <span class="title1">主题包价格:¥</span>                            <span class="title2">4500</span>                            <span class="title3">元</span>                        </p>                    </div>                </li>            </ul>            <div class="pointerDiv">                <span :class="[currantIndex ===0 ? 'active' : '', 'pointer']"></span>                <span :class="[currantIndex ===1 ? 'active' : '', 'pointer']"></span>                <span :class="[currantIndex ===2 ? 'active' : '', 'pointer']"></span>            </div>        </div>    </div></template> <script>export default {    data () {        return {            listData: [{lititle: '旧房改造'}, {lititle: '旧房改造2'}, {lititle: '旧房改造3'}],            liWidth: 0,            liNum: 0,            startX: 0,            endX: 0,            currantIndex: 0,            test: false         }    },    mounted () {        this.initUlWidth()    },    methods: {        initUlWidth () { // 初始化 ul的宽度            let pit = document.documentElement.clientWidth / 750 // 当前手机屏幕和750屏幕的比例            let oldWidth = document.getElementsByClassName('activityLi')[0].offsetWidth // 单个li的宽度            let marginR = getComputedStyle(document.getElementsByClassName('activityLi')[0], null)['marginRight'] // 获取单个的marginRight,带px            let marginNum = parseInt(marginR.replace('px', ''))            this.liWidth = oldWidth + marginNum // 单个宽度+maringRight            let liCount = parseInt(document.getElementsByClassName('activityLi').length)// li的个数            this.liNum = liCount            let ULpx = oldWidth * liCount + (liCount - 1) * marginNum // 最后一个margin不算            document.getElementById('activityUl').style.width = ULpx / pit + 'px'// 除以比率,让当前div宽度与2倍设计比例一样,设置ul的长度最后那个margin不算        },        touchStart (e) {            // 记录初始位置            e.preventDefault() // 阻止默认事件,滚动等            this.startX = e.touches[0].clientX // 记录滑动开始的位置        },        touchEnd (e) {            e.preventDefault() // 阻止默认事件            // 记录结束位置            this.endX = e.changedTouches[0].clientX            // 左滑            if (this.startX - this.endX > 30) {                console.log('左滑')                if (this.currantIndex >= this.liNum - 1) {                    // 不做操作                } else {                    this.currantIndex++                    document.getElementById('activityUl').style.left = -this.currantIndex * this.liWidth + 'px'                }            }            // 右滑            if (this.startX - this.endX < -30) {                if (this.currantIndex === 0) {                    // 不做操作                } else {                    this.currantIndex--                    document.getElementById('activityUl').style.left = -this.currantIndex * this.liWidth + 'px'                }            }            this.startX = 0            this.endX = 0        }     }}</script> <style lang="less" scoped>    @import "~less/base.less";    .constructionUp{        width: 100%;        .pub-hd{            padding: 0.8rem 0 0.6rem 0;            text-align: center;            background-color: #ffffff;            h3{                font-size: 0.32rem;                color: #606771;            }            h4{                margin-top: 0.26rem;                font-size: 0.24rem;                color: #b9bec4;            }        }        #activityDiv{            padding-left: 0.4rem;            background-color: #ffffff;            overflow: hidden;            #activityUl{                position: relative;                left: 0;                height: 8.06rem;                transition:all .35s ease-in-out;                background-color: #ffffff;                .activityLi{                    float: left;                    width: 6.7rem;                    height: 8.06rem;                    &:not(:last-child){                        margin-right: 0.3rem;                    }                    box-shadow: 0 5px 25px 0 rgba(0,0,0,.4);                    img{                        width: 100%;                        height: 3.6rem;                    }                    .liText{                        padding: 0 0.4rem;                        text-align: left;                        .liTtitle{                            padding: 0.48rem 0 0.36rem 0;                            font-size: 0.34rem;                            color: #000000;                        }                        .liDes{                            font-size: 0.2rem;                            color:#b5b5b5;                        }                    }                    .liPrice{                        height: 0.28rem;                        line-height: 0.28rem;                        color: @c-main; //颜色换一下就好                        vertical-align: bottom;                        margin-top: 0.8rem;                        .title1{                            display: inline-block;                            font-size: 0.22rem;                        }                         .title2{                              display: inline-block;                              font-size: 0.35rem;                        }                         .title3{                              display: inline-block;                              font-size: 0.22rem;                        }                    }                }            }             .pointerDiv{                width: 100%;                height: 1.54rem;                background-color: #ffffff;                display: flex;                align-items: center;                justify-content: center;                .pointer{                    display: inline-block;                    width: 0.16rem;                    height: 0.16rem;                    background-color: #cccccc;                    border-radius: 100%;                    &:nth-child(2){                        margin:0 0.4rem;                    }                    &.active{                        background-color: @c-main;                    }                }            }        }    }</style>

到此,相信大家对“vue+rem自定义轮播图效果实现”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: vue+rem自定义轮播图效果实现

本文链接: https://www.lsjlt.com/news/296472.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue+rem自定义轮播图效果实现
    本篇内容主要讲解“vue+rem自定义轮播图效果实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue+rem自定义轮播图效果实现”吧!使用vue+rem自定义轮播图的实现,供大家参考,具体内...
    99+
    2023-06-20
  • vue+rem自定义轮播图效果
    使用vue+rem自定义轮播图的实现,供大家参考,具体内容如下 单位使用rem进行页面布局,在动态计算轮播图整体宽度时,需要把px转换成rem,挺麻烦的。 效果如下:如果当前图片不是...
    99+
    2024-04-02
  • Android自定义轮播图效果
    本文实例为大家分享了Android自定义轮播图效果的具体代码,供大家参考,具体内容如下 概述 1、写一个布局,其中有ViewPager,TextView,LinearLayout. ...
    99+
    2024-04-02
  • vue自定义js图片碎片轮播图切换效果怎么实现
    这篇文章给大家分享的是有关vue自定义js图片碎片轮播图切换效果怎么实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。定义一个banner.js文件,代码如下;window.re...
    99+
    2024-04-02
  • Vue中如何实现轮播图效果
    这篇文章将为大家详细讲解有关Vue中如何实现轮播图效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Vue 过渡Vue 的过渡系统是内置的,在元素从 DOM 中插入或移除...
    99+
    2024-04-02
  • vue实现轮播图效果的代码
    这篇文章主要介绍“vue实现轮播图效果的代码”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue实现轮播图效果的代码”文章能帮助大家解决问题。1.原理:v-on:click="prev&q...
    99+
    2023-06-27
  • jquery实现图片自动轮播效果
    本文实例为大家分享了jquery实现图片自动轮播效果的具体代码,供大家参考,具体内容如下 HTML代码如下: <div id="container">         ...
    99+
    2024-04-02
  • React实现轮播图效果
    本文实例为大家分享了React实现轮播图效果的具体代码,供大家参考,具体内容如下 效果: 轮播功能用到了react-slick组件,安装: npm install react-sl...
    99+
    2024-04-02
  • Android实现轮播图效果
    本文实例为大家分享了Android实现轮播图效果的具体代码,供大家参考,具体内容如下 1.代码放在LinearLayout中, <com.jude.rollviewpage...
    99+
    2024-04-02
  • bootstrap实现轮播图效果
    本文实例为大家分享了bootstrap实现轮播图效果的具体代码,供大家参考,具体内容如下 实现效果 步骤 1、下载bootstrap和jquery-3.6.0.min.js,并在h...
    99+
    2024-04-02
  • Vue实现首页banner自动轮播效果
    本文实例为大家分享了Vue实现首页banner自动轮播的具体代码,供大家参考,具体内容如下 效果如图:  ①创建Banner.vue组件,需传入banner数组,可设置轮...
    99+
    2024-04-02
  • Vue实现无缝轮播效果
    本文实例为大家分享了Vue实现无缝轮播效果的具体代码,供大家参考,具体内容如下 代码 1.子组件代码 代码如下(示例): <template> <di...
    99+
    2024-04-02
  • 用JavaScript实现轮播图效果
    本文实例为大家分享了JavaScript实现轮播图效果的具体代码,供大家参考,具体内容如下 实现代码: <!DOCTYPE html> <html lang=...
    99+
    2024-04-02
  • 纯js实现轮播图效果
    本文实例为大家分享了js实现轮播图效果的具体代码,供大家参考,具体内容如下 结合我们前面学过的:鼠标监听事件(移入移出、点击),创建节点,排他思想、定时器等,就可以实现一个能手动和自...
    99+
    2024-04-02
  • js实现3D轮播图效果
    本文实例为大家分享了js实现3D轮播图效果的具体代码,供大家参考,具体内容如下 主要有平移和旋转构成3d效果的轮播图,小白一只,不足之处还请大家多多指教,代码如下 css代码: ...
    99+
    2024-04-02
  • 用jquery实现轮播图效果
    本文实例为大家分享了用jquery实现轮播图的具体代码,供大家参考,具体内容如下 (带小圆点和左右箭头切换效果的) 原理:定义索引,定时任务实现轮播切换,切换时同样需要切换小圆点...
    99+
    2024-04-02
  • Android实现视图轮播效果
    最近接手了一个需求,要求实现,叮咚买菜。 秒杀位置的轮播 拆解 通过观察发现其实还是挺简单,大致分为 1、商品图片的上下轮播 2、价格布局渐隐渐现 在android上实现布局轮播,...
    99+
    2024-04-02
  • 用js实现轮播图效果
    今天来说一下利用js实现轮播图效果,供大家参考,具体内容如下 思路 1.首先我们要把需要用到的元素获取过来 <div class="all" id='box'> ...
    99+
    2024-04-02
  • jquery如何实现图片自动轮播效果
    这篇文章主要介绍“jquery如何实现图片自动轮播效果”,在日常操作中,相信很多人在jquery如何实现图片自动轮播效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jquery如何实现图片自动轮播效果”的疑...
    99+
    2023-06-29
  • 纯css如何实现轮播图banner自动轮换效果
    这篇文章主要为大家展示了纯css如何实现轮播图banner自动轮换效果,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“纯css如何实现轮播图banner自动轮换效果”这篇文章吧。css是什么意思cs...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作