making a resizable div effect in vanilla js

scroll image compare


<!DOCTYPE html>
<html lang="zh-Hans">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="xgqfrms">
<meta name="generator" content="VS code">
<title>scroll image compare</title>
<style>
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
.home-sec {
padding-top: 64px;
padding-bottom: 80px;
}
.before-after {
background: #283593;
}
.home-col {
width: 100%;
max-width: 1024px;
padding-left: 32px;
padding-right: 32px;
margin-left: auto;
margin-right: auto;
box-sizing: border-box;
}
.home-sec h2 {
text-align: center;
}
.before-after .container {
width: 100%;
border-radius: 4px;
overflow: hidden;
position: relative;
cursor: col-resize;
box-shadow: 0 12px 24px 0;
rgba(0,0,0,.18);
min-height: 300px;
}
.before-after .before {
position: absolute;
height: 100%;
top: 0;
left: 0;
overflow: hidden;
border-right: 4px solid #00a2eb;
box-sizing: border-box;
}
.before-after .before img {
display: flex;
height: 100%;
}
</style>
</head>
<body>
<header>
<h1>scroll image compare</h1>
</header>
<main class="before-after home-sec">
<article class="home-col">
<h2 style="color: white;">Before &amp; After</h2>
<section class="before-after">
<div class="container">
<!-- <div class="before" style="width: 972.5px;"> -->
<div class="before" style="width: 484.5px;">
<img srcset="https://cdn.xgqfrms.xyz/css-effects-all-in-one/images/before.png">
</div>
<img srcset="https://cdn.xgqfrms.xyz/css-effects-all-in-one/images/after.png" class="after">
<!-- <div class="before" style="width: 484.5px;">
<img src="https://www.fika.io/img/origin.290c77e9.png" srcset="https://cdn.xgqfrms.xyz/css-effects-all-in-one/images/before.png">
</div>
<img src="https://www.fika.io/img/latte.f6f60fee.png" srcset="https://cdn.xgqfrms.xyz/css-effects-all-in-one/images/after.png" class="after"> -->
</div>
</section>
<div>
<a href="https://www.fika.io/">https://www.fika.io/</a>
</div>
</article>
</main>
<footer>
<p>copyright&copy; xgqfrms 2020</p>
</footer>
<!-- js -->
<script>
const log = console.log;
// const div = document.querySelector(`[class="before"]`);
const div = document.querySelector(`div.before`);
const box = document.querySelector(`div.container`);
// log(`box`, box)
// box.addEventListener(`mousedown`, (e) => {
// log(`mousedown`, e);
// });
box.addEventListener(`mousemove`, (e) => {
// log(`mousemove`, e);
const {
offsetX,
offsetY,
} = e;
// log(`offsetX`, offsetX);
// div.style.width = offsetX;
div.style.width = offsetX + `px`;
});
// box.addEventListener(`scroll`, (e) => {
// log(`scroll`, e);
// });
// box.addEventListener(`move`, (e) => {
// log(`move`, e);
// });
</script>
</body>
</html>

See the Pen scroll image compare by xgqfrms
(@xgqfrms) on CodePen.

refs

https://codepen.io/xgqfrms/pen/wvMQqZL

https://developer.mozilla.org/en-US/docs/Web/API/Element/mousemove_event

https://medium.com/the-z/making-a-resizable-div-in-js-is-not-easy-as-you-think-bda19a1bc53d



xgqfrms 2012-2020

www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!


making a resizable div effect in vanilla js的更多相关文章

  1. JavaScript代码编写尝试使用Vanilla JS 或者Jquery插件

    From Here: http://vanilla-js.com/ Vanilla JS is a fast, lightweight, cross-platform frameworkfor bui ...

  2. 动态添加div及对应的js、css文件

    动态添加div及对应的js.css文件 在近期的项目开发中需要在首页中添加很多面板型的div,直接加载代码显得很繁琐,于是利用js封装一个动态添加div及其对应css文件和js文件的方法供大家参考使用 ...

  3. js文件需要jsp页面中的div时,此js文件必须在div之后才能获得值,否则获取不到

    js文件需要jsp页面中的div时,此js文件必须在div之后才能获得值,否则获取不到 2.图2的内容为directionkey.js的内容

  4. 页面的div中有滚动条,js实现刷新页面后回到记录时滚动条的位置

    当div中绑定数据,给它一个属性overflow-y: scroll,添加长度大小,使其能够出现滚动条:每次刷新的时候滚动条总是会出现在最上方,这使我很头疼,经过查阅网上资料,返现两种方法可行.如下: ...

  5. jquery load加载页面内ajax返回的div不能响应页面js的问题的解决方案

    1. 前言 由于项目需要,需要load一个页面并保持ajax返回的div能响应其页面内的JS的click事件.这个不是 解决用jquery load加载页面到div时,不执行页面js的问题 这类问题, ...

  6. 页面DIV弹出层 JS原生脚本

    <script type="text/javascript"> /*         * 弹出DIV层         */ function showDiv() { ...

  7. [Tools] Unlock TypeScript's Features in Vanilla JS with @ts-check and JSDoc

    TypeScript can help you with your plain JavaScript files if you add a simple //@ts-check comment. Th ...

  8. js 实现div模块的截图并下载功能(可制作长图)

    当需要实现html页面部分模块截图并具有保存图片功能时,前台直接生成截图并下载会方便的多.多的不说,直接看代码首先我们需要引入2个js文件: <script type="text/ja ...

  9. JaveWeb 公司项目(7)----- 通过JS动态生成DIV

    Web网页项目的数据表格功能已经大体完成,下面是另一个主要功能,在线视频的显示 目前我做的项目是渔政监控方面,在之前C#的版本中已经实现了摄像头的在线监控,用的海康封装好的SDK,目前需要做的工作是在 ...

随机推荐

  1. 自定义Decoder继承ByteToMessageDecoder实现解码的小案例

    ByteToMessageDecoder是一种ChannelInboundHandler,可以称为解码器,负责将byte字节流(ByteBuf)转换成一种Message,Message是应用可以自己定 ...

  2. testng学习笔记-- beforeclass和afterclass

    一.定义 类之前和类之后运行的方法 使用场景: 类运行之前是否需要静态方法,变量赋值,写完其他方法都可以用了 二.标签代码 三.运行结果

  3. Java面向对象(一)----初次见面

    面向对象 面向过程:根据业务逻辑从上到下写代码 函数式编程:对一些功能的代码封装到函数中,日后无需重复编写,直接调用函数就可以了 面向对象:将所有的功能进行封装,面对的事封装了功能的实体(对象),即面 ...

  4. 大数据之Hadoop技术入门汇总

    今天,小编对Hadoop入门学习知识进行了汇总,帮助大家更好地入手大数据.小编关于Hadoop入门总共发写了12篇原创文章,文章是参照尚硅谷大数据视频教程来进行撰写的. 今天,小编带你解锁正确的阅读顺 ...

  5. 虚函数表-C++多态的实现原理

    目录 1.说明 2.虚函数表 3.代码示例 参考:http://c.biancheng.net/view/267.html 1.说明 我们都知道多态指的是父类的指针在运行中指向子类,那么它的实现原理是 ...

  6. 获取本机IP和主机名

    如果是在windows环境: 使用InetAddress.getLocalHost()方法即可 package com.datongsoft.wg.common.util; import java.n ...

  7. lodash的debounce函数的使用

    最新,在react新项目的开发中使用到了lodash类库的debounce方法,就随手梳理了一下此方法的方便之处 未使用debounce之前 如果不考虑使用debounce,那么在用户连续点击的情况之 ...

  8. c++指针 c指针 改变值

    1. #include <iostream>using namespace std;void move(int *p)    ====>void move(*&p){     ...

  9. cassandra权威指南读书笔记--配置cassadnra

    配置集群时,要求所有节点的集群名,分区器,snitch必须相同.种子节点最好相同. 种子节点:最好每个DC,配置2个,这样即使一个DC中一个种子节点挂了,仍然有一个中子节点可用.种子节点被认为是最先加 ...

  10. 数理统计7:矩法估计(MM)、极大似然估计(MLE),定时截尾实验

    在上一篇文章的最后,我们指出,参数估计是不可能穷尽讨论的,要想对各种各样的参数作出估计,就需要一定的参数估计方法.今天我们将讨论常用的点估计方法:矩估计.极大似然估计,它们各有优劣,但都很重要.由于本 ...