首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js实现文字左右滑动切换图片

要实现文字左右滑动切换图片的效果,可以使用HTML、CSS和JavaScript来完成。以下是一个简单的示例:

HTML部分

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>文字左右滑动切换图片</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <div class="slider-container">
        <div class="slider">
            <div class="slide active">
                <img src="image1.jpg" alt="Image 1">
                <p>这是第一张图片的描述</p>
            </div>
            <div class="slide">
                <img src="image2.jpg" alt="Image 2">
                <p>这是第二张图片的描述</p>
            </div>
            <div class="slide">
                <img src="image3.jpg" alt="Image 3">
                <p>这是第三张图片的描述</p>
            </div>
        </div>
        <button class="prev">Prev</button>
        <button class="next">Next</button>
    </div>
    <script src="script.js"></script>
</body>
</html>

CSS部分(styles.css)

代码语言:txt
复制
body {
    font-family: Arial, sans-serif;
}

.slider-container {
    position: relative;
    width: 80%;
    margin: 0 auto;
    overflow: hidden;
}

.slider {
    display: flex;
    transition: transform 0.5s ease-in-out;
}

.slide {
    min-width: 100%;
    box-sizing: border-box;
    text-align: center;
}

.slide img {
    width: 100%;
    height: auto;
}

.prev, .next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background-color: rgba(0, 0, 0, 0.5);
    color: white;
    border: none;
    padding: 10px;
    cursor: pointer;
}

.prev {
    left: 10px;
}

.next {
    right: 10px;
}

JavaScript部分(script.js)

代码语言:txt
复制
const slides = document.querySelectorAll('.slide');
const prevBtn = document.querySelector('.prev');
const nextBtn = document.querySelector('.next');
let currentIndex = 0;

function showSlide(index) {
    const offset = -index * 100;
    document.querySelector('.slider').style.transform = `translateX(${offset}%)`;
}

prevBtn.addEventListener('click', () => {
    currentIndex = (currentIndex - 1 + slides.length) % slides.length;
    showSlide(currentIndex);
});

nextBtn.addEventListener('click', () => {
    currentIndex = (currentIndex + 1) % slides.length;
    showSlide(currentIndex);
});

解释

  1. HTML部分:定义了一个包含图片和描述的滑动容器,每个滑动项(.slide)包含一张图片和一段文字描述。
  2. CSS部分:设置了滑动容器的样式,使其能够水平排列滑动项,并添加了过渡效果。按钮样式也进行了设置。
  3. JavaScript部分:通过监听“上一张”和“下一张”按钮的点击事件,更新当前显示的滑动项的索引,并使用CSS的transform属性来实现滑动效果。

应用场景

这种效果常用于图片轮播、产品展示、新闻滚动等场景,可以吸引用户的注意力并提供流畅的用户体验。

优势

  • 用户体验:滑动切换效果比传统的翻页效果更加流畅和自然。
  • 灵活性:可以轻松添加或删除滑动项,适应不同的内容需求。
  • 可定制性:可以通过CSS和JavaScript进行高度定制,满足不同的设计需求。

希望这个示例能帮助你实现文字左右滑动切换图片的效果。如果有任何问题或需要进一步的帮助,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

图片轮播(左右切换)--JS原生和jQuery实现

图片轮播(左右切换)--js原生和jquery实现 左右切换的做法基本步骤跟 上一篇文章  淡入淡出 类似,只不过修改了一些特定的部分 ?...(1)首先是页面的结构部分 对于我这种左右切换式 1.首先是个外围部分(其实也就是最外边的整体wrapper) 2.接着就是你设置图片轮播的地方(也就是一个banner吧) 3.然后是一个图片组(可以用新的...然后当想切换到某序号的图片时,则采用其ul 定位 left样式设定相应属性值实现 比如显示第一张图片初始定位left为0px, 要想显示第二张图片则需要left:-400px 处理 切换的函数实现了,比如要切换到序号为num的图片 //左右切换处理函数 function changeTo(num){ //设置image var...js原生(左右切换) 6 7 body,div,ul,li,a,img{margin: 0;padding: 0;}

81.3K20
  • Android 使用ViewPager实现左右循环滑动图片

    ViewPager这个小demo实现的是可以左右循环滑动图片,下面带索引,滑到最后一页在往右滑动就要第一页,第一页往左滑动就到最后一页,先上效果图,用美女图片是我一贯的作风,呵呵 1....private ImageView[] tips; /** * 装ImageView数组 */ private ImageView[] mImageViews; /** * 图片资源...设置监听,主要是设置点点的背景 viewPager.setOnPageChangeListener(this); //设置ViewPager的默认项, 设置为长度的100倍,这样子开始就能往左滑动...(ViewPager)container).removeView(mImageViews[position % mImageViews.length]); } /** * 载入图片进去...2张图片的时候,滑动存在BUG问题的修改如下 destroyItem(View container, int position, Object object)方法中不removeView @Override

    2.6K30

    css+js实现左右滑动卡片组件

    最近的一个活动页面需要做一个可以左右滑动的抽签效果,故通过用css的transform属性和js结合来模拟可以无限滚动的效果。...先上效果: Kapture 2018-12-13 at 19.47.23.gif demo地址:https://kiroroyoyo.github.io/cardTransform/index.html 实现过程...而对于用户这一操作是无感知的,认为已经滑动到了新的位置。 3.滑动过程实现 a....目标位移与帧位移 为了做出滑动后到停留位置的缓动效果,所以当用户左右滑动屏幕时,会记录滑动距离,计算出卡片该到的目标位移位置,目标位移位置是有规则的,因为这里有10张卡片均分宽度,位置必须是(100%/...下图是chrome cpu6倍减速调试效果,没有触发layout,FPS基本维持在60左右。

    30.7K102

    文字不换行超出后左右滑动

    先辈,到底应该如何实现。 我认为, 可是,即使是这样,先辈的出现仍然代表了一定的意义。 总结的来说, 那么, 在这种困难的抉择下,本人思来想去,寝食难安。...先辈,到底应该如何实现。 先辈,到底应该如何实现。 先辈因何而发生? 现在,解决先辈的问题,是非常非常重要的。 所以, 对我个人而言,先辈不仅仅是一个重大的事件,还可能会改变我的人生。...那么, 先辈,到底应该如何实现。 那么, 拉罗什夫科在不经意间这样说过,取得成就时坚持不懈,要比遭到失败时顽强不屈更重要。这似乎解答了我的疑惑。... 效果是这样的 如果我们想让它不换行,并且超出后能左右滑动 可以在css中加上如下代码 white-space: nowrap; overflow-x: scroll; 效果如下 如果我们还需隐藏滚动条...先辈,到底应该如何实现。 先辈,到底应该如何实现。 先辈因何而发生? 现在,解决先辈的问题,是非常非常重要的。 所以, 对我个人而言,先辈不仅仅是一个重大的事件,还可能会改变我的人生。

    2.3K10
    领券