展示图片和平移滑动

实现展示图片和平移滑动

需求

在展示框内展示图片,并通过左右按钮平滑的向左向右滑动展示

思路

创建一个外层容器

内层定义使用 transition 进行滑动

点击左右按钮时计算左右滑动距离 使用translateX 进行偏移

完整代码

<!DOCTYPE html>
<html>

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>滑动范例</title>
    <style type="text/css">
        body {
            text-align: center;
        }

        #view {
            text-align: center;
            display: inline-block;
            border: 5px solid red;
        }

        .arrow {
            width: 20px;
            height: 230px;
            line-height: 230px;
            cursor: pointer;
            margin: 5px;
            border: 1.5px solid black;
            display: inline-block;
            background-color: grey;

        }

        .content {
            width: 960px;
            min-width: 960px;
            position: relative;
            height: 230px;
            margin: 5px;
            overflow: hidden;
            display: inline-block;
        }

        .viewImg {
            display: flex;
            position: absolute;
            left: 0;
            transition: transform 0.3s;
        }

        img {
            background-color: blueviolet;
            padding: 10px;
            width: 200px;
            min-width: 200px;
            max-width: 200px;
            height: 200px;
        }
    </style>

</head>

<body>
    <div id="view">
        <div class="left arrow" onclick="left()"> </div>
        <div class="content">
            <div class="viewImg" id="viewImg">
                <img />
                <img />
                <img />
                <img />
                <img />
                <img />
                <img />
                <img />
                <img />
                <img />
                <img />
                <img />
                <img />
                <img />
                <img />
                <img />
            </div>

        </div>
        <div class="right arrow" onclick="right()"></div>

    </div>

    <script type="text/javascript">

        var contentL;
        var listL;
        var maxL;
        var minL;

        window.onload = function () {

            // 获取容器的宽度
            contentL = document.getElementsByClassName('content')[0].offsetWidth;
            // 获取内容的宽度
            listL = document.getElementsByClassName('viewImg')[0].offsetWidth;

            // 判断内容宽度是否大于容器 是否需要左右偏移
            if (contentL - listL < 0) {
                maxL = contentL - listL;
            } else {
                maxL = 0;
            }

            minL = 0;

        }

        function left() {

            // 获取到当前偏移位置
            const left_now = document.getElementById('viewImg').style.transform ?
                parseFloat(document.getElementById('viewImg').style.transform.substr(11)) : 0;

            if (maxL !== 0) {

                // 计算需要偏移量 当前偏移 + 440 (两个img的宽度)
                const offset = left_now + 440; 

                if (offset >= minL) {

                    document.getElementById('viewImg').style.transform = 'translateX(' + minL + 'px)';
                } else {

                    document.getElementById('viewImg').style.transform = 'translateX(' + offset + 'px)';

                }
            }

        }

        function right() {

            const left_now = document.getElementById('viewImg').style.transform ?
                parseFloat(document.getElementById('viewImg').style.transform.substr(11)) : 0;
            if (maxL !== 0) {
                const offset = left_now - 440;

                if (offset <= maxL) {

                    document.getElementById('viewImg').style.transform = 'translateX(' + maxL + 'px)';
                } else {

                    document.getElementById('viewImg').style.transform = 'translateX(' + offset + 'px)';
                }

            }

        }

    </script>

</body>

</html>

原文地址:https://www.cnblogs.com/nhxz001/p/12222463.html

时间: 2024-11-04 23:57:52

展示图片和平移滑动的相关文章

base64编码加密图片和展示图片

base64是当前网络上最为常见的传输8Bit字节代码的编码方式其中之一.base64主要不是加密,它主要的用途是把某些二进制数转成普通字符用于 网络传输.由于这些二进制字符在传输协议中属于控制字符,不能直接传送,所以需要转换一下.虽然图片可能直接传输,但是我们也可以将它变成字符串直接放在 源码里,而不需要浏览器在读取到源码后再从服务器上下载.如何对图片进行base64编码 <?php $file = "./image/index.png"; $type = getimagesi

提问!同一ajax请求获取的图片路劲,在谷歌浏览器能正确展示图片,在火狐浏览器则显示路径undefined

今天的工作学习之路遇见一个奇葩的问题,作为初级攻城狮的小生实在不知如何解决,都已经壁咚度娘一整天了,都未能解决问题,实属无奈,一开始认为是浏览器兼容的问题,但左看右看,也不是,也尝试过是不是页面加载与请求后没对应上,发现也不是,检查返回的结果,居然是undefined,可是在谷歌浏览器没有任何问题能正常展示图片,在火狐浏览器却是这样,来,看图说话: 首先此<img>标签为js动态拼接页面,因为获取的是会员等级,通过请求接口在另一个系统后台抓取图片路径,此拼接在循环中,每循环一次存入便存入数组中

利用base64展示图片

其实很简单,格式如下: <img src="data:image/jpg;base64,具体的编码值" /> 示例如下: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>利用base64展示图片</title> 5 </head> 6 <body> 7 <img src="data:image/jpg;base64,/9j/4QAYR

iOS UIImage UIImageView 展示图片 不变形 处理

展示图片 时候 固定 了 imageView  的大小  图片 也裁剪了 尽量保持比例 可是 还是失真 变形了 这张图 ui 要求展示的UIimageView 大小 是固定 的  ,传过来的 图片 是这样的比例大小 这么大的图呢  比例 完全 不对等 imageView  的contentMode 属性  网上有个  很形象的例子 但是 尽量 其中  UIViewContentModeScaleAspectFill 会保证图片比例不变,但是是填充整个ImageView的 但是 我使用的情况 比例

Cognos报表展示图片小技巧

场景:在销售行业,比如手机,服装行业,如果仅仅的显示数字.文字那就显得不是很生动了,例如可以显示一下图片,那种样子的产品受大家喜欢. 样例1:在报表头都喜欢加上一些公司的logo,让报表看上去专业点. 这样就可以选中区域,添加背景图像,指定url 为图像添加URL路径(../samples/images/) 样例2:根据图像显示销售数据,如图 表设计如下: 需要设置的:选中图像,URL来源来自数据项 Cognos报表展示图片小技巧,布布扣,bubuko.com

iOS基础项目之----图片控制器(控制图片的平移与缩放)

Main.storybord的大致布局如下: 代码部分: ViewController.m: #import "ViewController.h" //枚举 typedef enum{kUpButton=1,kDownButton,kLeftButton,kRightButton,kMinifyButton,kPlusButton,kLeftRotateButton,kRightRotateButton}kTag; @interface ViewController () @prope

微信开发之调起摄像头、本地展示图片、上传下载图片

之前那篇微信JS-SDK授权的文章实现了分享接口,那么这里总结一下如何在微信里面通过js调起原生摄像头,以及上传下载图片. 1.配置 页面引入通过jssdk授权后,传入wx对象,首先配置需要的接口 wx.config({ /* debug: true, */ appId: appid, timestamp: timestamp, nonceStr: nonceStr, signature: signature, jsApiList: [ 'chooseImage',//拍照或从手机相册中选图接口

Android进度条控制图片旋转&#183;平移&#183;缩放&#183;倾斜

初来乍到 平时代码多写于某笔记软件上 现在在这里记录一些 从初学Android开始写起 可能有些地方实现得略小白 或者还不能熟练使用博客园的功能 但是希望能够对需要的人有帮助 不足之处请多指教 一般使用工具:android studio 那么 Here we go. have a good time. 用进度条实现控制图片旋转·平移·缩放·倾斜 效果: 1 public class MainActivity extends AppCompatActivity implements SeekBar

Android 图片的平移和镜面和倒影效果

在前面的文章中陆续介绍了图片的旋转与缩放,本文继续介绍关于图片的操作 图片的平移 使用下面的代码将图水平竖直方向平移10个像素 matrix.setTranslate(10, 10); 可以看到图片不完整,需要修改代码: // 新建一个bitmap Bitmap alterBitmap = Bitmap.createBitmap(bitmap1.getWidth() * 2, bitmap1.getHeight() * 2, bitmap1.getConfig()); 其他代码均不变 图片的镜面