js 案例
- div 拖拽改变大小
引入 jqery 库
<script src="./js/jquery-1.8.3.js"></script>
基本布局
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
div {
position: absolute;
width: 30px;
height: 20px;
border: 1px solid red;
}
</style>
</head>
<body>
<div id="test">1111111</div>
<script src="./js/jquery-1.8.3.js"></script>
</body>
</html>
- 获取 dom
let mydiv = document.getElementById(“test”);
编辑鼠标点击事件
mydiv.onmousedown = function (e) {
let ev = e || window.event;
let disX = ev.clientX - mydiv.offsetLeft;
let disY = ev.clientY - mydiv.offsetTop;
// console.log(disX);
// console.log(disY);
if (mydiv.setCapture) {
mydiv.setCapture(); //解决ie8一下文本层问题
}
编辑鼠标拖动事件
document.onmousemove = function (e) {
let ev = e || window.event;
mydiv.style.left = ev.clientX - disX + "px";
mydiv.style.top = ev.clientY - disY + "px";
// console.log(mydiv.style.left);
// console.log(mydiv.style.top);
};
编辑放开鼠标时间
document.onmouseup = function () {
document.onmousemove = null;
document.onmouseup = null;
if (mydiv.releaseCapture) {
mydiv.releaseCapture();
}
};
完整代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
img {
width: 300px;
height: 200px;
}
div {
position: absolute;
width: 300px;
height: 200px;
border: 1px solid red;
}
</style>
</head>
<body>
<div id="test">
1111111
<img src="" alt="" />
</div>
<script src="./js/jquery-1.8.3.js"></script>
<script>
$(function () {
let mydiv = document.getElementById("test");
// console.log(mydiv);
mydiv.onmousedown = function (e) {
let ev = e || window.event;
let disX = ev.clientX - mydiv.offsetLeft;
let disY = ev.clientY - mydiv.offsetTop;
// console.log(disX);
// console.log(disY);
if (mydiv.setCapture) {
mydiv.setCapture(); //解决ie8一下文本层问题
}
document.onmousemove = function (e) {
let ev = e || window.event;
mydiv.style.left = ev.clientX - disX + "px";
mydiv.style.top = ev.clientY - disY + "px";
// console.log(mydiv.style.left);
// console.log(mydiv.style.top);
};
document.onmouseup = function () {
document.onmousemove = null;
document.onmouseup = null;
if (mydiv.releaseCapture) {
mydiv.releaseCapture();
}
};
return false;
};
});
</script>
</body>
</html>
- 字符穿综合
基本布局
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
font-family: "微软雅黑";
}
p {
margin: 100px auto;
padding: 20px;
width: 400px;
border: 5px solid #808080;
font-size: 18px;
}
a {
font-size: 14px;
}
.btn {
width: 40px;
height: 25px;
text-align: center;
line-height: 25px;
border: 1px solid #808080;
}
.btn {
background: #dcdcdc;
padding: 5px;
position: absolute;
left: 50%; /*让元素居中写法*/
margin-left: 225px;
top: 100px;
cursor: pointer;
}
#ChangeCard {
width: 300px;
height: 100px;
padding: 20px;
border: 5px solid #cd5c5c;
position: absolute;
left: 50%; /*让元素居中写法*/
margin-left: -170px;
top: 300px;
overflow: hidden;
display: none;
}
.Change_div {
float: left;
width: 40px;
height: 20px;
text-align: center;
line-height: 20px;
padding: 5px;
cursor: pointer;
}
.myChange {
clear: left;
border-top: 2px solid #db7093;
padding: 20px;
}
input[type="text"] {
display: inline-block;
width: 100px;
}
</style>
</head>
<body>
<p>
<span>
妙味课堂是一支独具特色的IT培训团队,妙味反对传统IT教育枯燥乏味的教学模式,妙味提供一种全新的快乐学习方法!
2013年底,妙味课堂最新推出"远程培训"服务,受到很多朋友们的喜爱与追捧,我们必将更加努力的帮助远程学习的朋友实现技术提升……
</span>
<a href="javascript:;">>>收缩</a>
</p>
<div class="btn">查找</div>
<div class="btn" style="top: 135px">替换</div>
<div id="ChangeCard">
<div class="Change_div">查找</div>
<div class="Change_div">替换</div>
<div class="myChange">
<input class="myContent" type="text" />
<input class="do_btn" type="button" value="查找" />
</div>
<div class="myChange">
<input class="myContent" type="text" />
<input class="myContent" type="text" />
<input class="do_btn" type="button" value="替换" />
</div>
</div>
</body>
</html>
获取 dom
let oSpan = document.getElementsByTagName("span");
let oA = document.getElementsByTagName("a");
let btn = true;
let oldContent = oSpan[0].innerHTML;
编辑文本展开与搜索
oA[0].onclick = function () {
if (btn) {
oSpan[0].innerHTML = oldContent.substring(0, 27) + "......";
oA[0].innerHTML = ">>展开";
} else {
oSpan[0].innerHTML = oldContent;
oA[0].innerHTML = ">>收缩";
}
btn = !btn;
}; //将文本展开与收缩
编辑查找替换卡片
let myDiv = document.getElementById("ChangeCard");
let oBtn = document.getElementsByClassName("btn");
let Change_div = document.getElementsByClassName("Change_div");
oBtn[0].onclick = function () {
// 编辑切换功能
myDiv.style.display = "block";
document.getElementsByClassName("Change_div")[0].style.background = "#db7093";
document.getElementsByClassName("Change_div")[1].style.background = "#fff";
document.getElementsByClassName("myChange")[0].style.display = "block";
document.getElementsByClassName("myChange")[1].style.display = "none";
};
oBtn[1].onclick = function () {
myDiv.style.display = "block";
document.getElementsByClassName("Change_div")[0].style.background = "#fff";
document.getElementsByClassName("Change_div")[1].style.background = "#db7093";
document.getElementsByClassName("myChange")[0].style.display = "none";
document.getElementsByClassName("myChange")[1].style.display = "block";
};
Change_div[0].onclick = function () {
document.getElementsByClassName("Change_div")[0].style.background = "#db7093";
document.getElementsByClassName("Change_div")[1].style.background = "#fff";
document.getElementsByClassName("myChange")[0].style.display = "block";
document.getElementsByClassName("myChange")[1].style.display = "none";
};
Change_div[1].onclick = function () {
document.getElementsByClassName("Change_div")[0].style.background = "#fff";
document.getElementsByClassName("Change_div")[1].style.background = "#db7093";
document.getElementsByClassName("myChange")[0].style.display = "none";
document.getElementsByClassName("myChange")[1].style.display = "block";
};
编辑查找功能
var do_btns = document.getElementsByClassName("do_btn");
do_btns[0].onclick = function () {
let str = /^\S+$/;
let myContent = oSpan[0].innerHTML;
let mySearch = document.getElementsByClassName("myContent")[0].value;
if (str.test(mySearch)) {
if (myContent.split(mySearch).length == 1) {
alert("没找到");
document.getElementsByClassName("myContent")[0].value = ""; //清空
return false;
}
oSpan[0].innerHTML = myContent
.split(mySearch)
.join("<span style='background:#ff0;'> " + mySearch + "</span>");
oldContent = oSpan[0].innerHTML;
document.getElementsByClassName("myContent")[0].value = ""; //清空
} else {
alert("请输入查找内容");
}
编辑替换功能
do_btns[1].onclick = function () {
let str = /^\S+$/;
let myContent = oSpan[0].innerHTML;
let myChange1 = document.getElementsByClassName("myContent")[1].value;
let myChange2 = document.getElementsByClassName("myContent")[2].value;
if (!str.test(myChange1)) {
alert("输入要替换的内容");
return false;
}
if (!str.test(myChange2)) {
if (confirm("确定要删除吗")) {
oSpan[0].innerHTML = myContent
.split(myChange1)
.join("<span style = 'background:orange;'>" + myChange2 + "</span>");
document.getElementsByClassName("myChange")[1].value = ""; //清空
return false;
}
}
oSpan[0].innerHTML = myContent
.split(myChange1)
.join("<span style = 'background:orange;'>" + myChange2 + "</span>");
oldContent = oSpan[0].innerHTML;
document.getElementsByClassName("myContent")[1].value = ""; //清空
document.getElementsByClassName("myChange")[2].value = "";
};
完整代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
font-family: "微软雅黑";
}
p {
margin: 100px auto;
padding: 20px;
width: 400px;
border: 5px solid #808080;
font-size: 18px;
}
a {
font-size: 14px;
}
.btn {
width: 40px;
height: 25px;
text-align: center;
line-height: 25px;
border: 1px solid #808080;
}
.btn {
background: #dcdcdc;
padding: 5px;
position: absolute;
left: 50%; /*让元素居中写法*/
margin-left: 225px;
top: 100px;
cursor: pointer;
}
#ChangeCard {
width: 300px;
height: 100px;
padding: 20px;
border: 5px solid #cd5c5c;
position: absolute;
left: 50%; /*让元素居中写法*/
margin-left: -170px;
top: 300px;
overflow: hidden;
display: none;
}
.Change_div {
float: left;
width: 40px;
height: 20px;
text-align: center;
line-height: 20px;
padding: 5px;
cursor: pointer;
}
.myChange {
clear: left;
border-top: 2px solid #db7093;
padding: 20px;
}
input[type="text"] {
display: inline-block;
width: 100px;
}
</style>
</head>
<body>
<p>
<span>
妙味课堂是一支独具特色的IT培训团队,妙味反对传统IT教育枯燥乏味的教学模式,妙味提供一种全新的快乐学习方法!
2013年底,妙味课堂最新推出"远程培训"服务,受到很多朋友们的喜爱与追捧,我们必将更加努力的帮助远程学习的朋友实现技术提升……
</span>
<a href="javascript:;">>>收缩</a>
</p>
<div class="btn">查找</div>
<div class="btn" style="top: 135px">替换</div>
<div id="ChangeCard">
<div class="Change_div">查找</div>
<div class="Change_div">替换</div>
<div class="myChange">
<input class="myContent" type="text" />
<input class="do_btn" type="button" value="查找" />
</div>
<div class="myChange">
<input class="myContent" type="text" />
<input class="myContent" type="text" />
<input class="do_btn" type="button" value="替换" />
</div>
</div>
<script>
let oSpan = document.getElementsByTagName("span");
let oA = document.getElementsByTagName("a");
let btn = true;
let oldContent = oSpan[0].innerHTML;
oA[0].onclick = function () {
if (btn) {
oSpan[0].innerHTML = oldContent.substring(0, 27) + "......";
oA[0].innerHTML = ">>展开";
} else {
oSpan[0].innerHTML = oldContent;
oA[0].innerHTML = ">>收缩";
}
btn = !btn;
}; //将文本展开与收缩
let myDiv = document.getElementById("ChangeCard");
let oBtn = document.getElementsByClassName("btn");
let Change_div = document.getElementsByClassName("Change_div");
oBtn[0].onclick = function () {
// 编辑切换功能
myDiv.style.display = "block";
document.getElementsByClassName("Change_div")[0].style.background =
"#db7093";
document.getElementsByClassName("Change_div")[1].style.background =
"#fff";
document.getElementsByClassName("myChange")[0].style.display = "block";
document.getElementsByClassName("myChange")[1].style.display = "none";
};
oBtn[1].onclick = function () {
myDiv.style.display = "block";
document.getElementsByClassName("Change_div")[0].style.background =
"#fff";
document.getElementsByClassName("Change_div")[1].style.background =
"#db7093";
document.getElementsByClassName("myChange")[0].style.display = "none";
document.getElementsByClassName("myChange")[1].style.display = "block";
};
Change_div[0].onclick = function () {
document.getElementsByClassName("Change_div")[0].style.background =
"#db7093";
document.getElementsByClassName("Change_div")[1].style.background =
"#fff";
document.getElementsByClassName("myChange")[0].style.display = "block";
document.getElementsByClassName("myChange")[1].style.display = "none";
};
Change_div[1].onclick = function () {
document.getElementsByClassName("Change_div")[0].style.background =
"#fff";
document.getElementsByClassName("Change_div")[1].style.background =
"#db7093";
document.getElementsByClassName("myChange")[0].style.display = "none";
document.getElementsByClassName("myChange")[1].style.display = "block";
};
// 查找
var do_btns = document.getElementsByClassName("do_btn");
do_btns[0].onclick = function () {
let str = /^\S+$/;
let myContent = oSpan[0].innerHTML;
let mySearch = document.getElementsByClassName("myContent")[0].value;
if (str.test(mySearch)) {
if (myContent.split(mySearch).length == 1) {
alert("没找到");
document.getElementsByClassName("myContent")[0].value = ""; //清空
return false;
}
oSpan[0].innerHTML = myContent
.split(mySearch)
.join("<span style='background:#ff0;'> " + mySearch + "</span>");
oldContent = oSpan[0].innerHTML;
document.getElementsByClassName("myContent")[0].value = ""; //清空
} else {
alert("请输入查找内容");
}
};
// 替换
do_btns[1].onclick = function () {
let str = /^\S+$/;
let myContent = oSpan[0].innerHTML;
let myChange1 = document.getElementsByClassName("myContent")[1].value;
let myChange2 = document.getElementsByClassName("myContent")[2].value;
if (!str.test(myChange1)) {
alert("输入要替换的内容");
return false;
}
if (!str.test(myChange2)) {
if (confirm("确定要删除吗")) {
oSpan[0].innerHTML = myContent
.split(myChange1)
.join(
"<span style = 'background:orange;'>" + myChange2 + "</span>"
);
document.getElementsByClassName("myChange")[1].value = ""; //清空
return false;
}
}
oSpan[0].innerHTML = myContent
.split(myChange1)
.join("<span style = 'background:orange;'>" + myChange2 + "</span>");
oldContent = oSpan[0].innerHTML;
document.getElementsByClassName("myContent")[1].value = ""; //清空
document.getElementsByClassName("myChange")[2].value = "";
};
</script>
</body>
</html>
- 瀑布流
基本布局
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
* {
padding: 0;
margin: 0;
}
.wrap {
width: 100%;
}
.wrap .cont {
width: 1000px;
margin: 0 auto;
overflow: hidden;
}
.wrap ul {
float: left;
margin: 0 25px;
list-style: none;
}
.wrap ul li {
width: 200px;
background: #dcdcdc;
margin: 10px 0;
}
h2 {
height: 70px;
line-height: 70px;
background: #101010;
padding-left: 50px;
color: #fff;
}
.wrap ul .h1 {
height: 200px;
}
.wrap ul .h2 {
height: 70px;
}
.wrap ul .h3 {
height: 300px;
}
.wrap ul .h4 {
height: 180px;
}
</style>
</head>
<body>
<div class="wrap">
<h2>瀑布流展示:</h2>
<div class="cont">
<ul></ul>
<ul></ul>
<ul></ul>
<ul></ul>
</div>
</div>
</body>
</html>
引入 jqery 库
<script src="./js/jquery-1.8.3.js"></script>
将随机高度的 ul 加入到最小高度的 ul 里
function appendLi() {
let ulList = $(".cont > ul");
let ul1_h = ulList[0].offsetHeight;
let ul2_h = ulList[1].offsetHeight;
let ul3_h = ulList[2].offsetHeight;
let ul4_h = ulList[3].offsetHeight;
let minUl = Math.min(ul1_h, ul2_h, ul3_h, ul4_h);
let min_ul;
let lis;
let classH;
for (var i = 0; i < ulList.length; i++) {
if (ulList[i].offsetHeight == minUl) {
min_ul = ulList[i];
}
classH = getRanddomHeight();
lis = '<li class="h' + classH + '"></li>';
}
$(min_ul).append(lis);
}
向下生成新高度
function getRanddomHeight() {
return Math.floor(Math.random() * 3 + 1);
}
像无序列表添加不同高度的列表项
$(function () {
for (var i = 0; i < 20; i++) {
appendLi();
}
});
出发滚动事件
$(window).on("scroll", function () {
if (
$(document).scrollTop() + $(window).height() >
$(document).height() - 20
) {
$(document).scrollTop($(document).scrollTop() - 10);
appendLi();
}
});
完整代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
* {
padding: 0;
margin: 0;
}
.wrap {
width: 100%;
}
.wrap .cont {
width: 1000px;
margin: 0 auto;
overflow: hidden;
}
.wrap ul {
float: left;
margin: 0 25px;
list-style: none;
}
.wrap ul li {
width: 200px;
background: #dcdcdc;
margin: 10px 0;
}
h2 {
height: 70px;
line-height: 70px;
background: #101010;
padding-left: 50px;
color: #fff;
}
.wrap ul .h1 {
height: 200px;
}
.wrap ul .h2 {
height: 70px;
}
.wrap ul .h3 {
height: 300px;
}
.wrap ul .h4 {
height: 180px;
}
</style>
</head>
<body>
<div class="wrap">
<h2>瀑布流展示:</h2>
<div class="cont">
<ul></ul>
<ul></ul>
<ul></ul>
<ul></ul>
</div>
</div>
<script src="./js/jquery-1.8.3.js"></script>
<script>
function appendLi() {
let ulList = $(".cont > ul");
let ul1_h = ulList[0].offsetHeight;
let ul2_h = ulList[1].offsetHeight;
let ul3_h = ulList[2].offsetHeight;
let ul4_h = ulList[3].offsetHeight;
let minUl = Math.min(ul1_h, ul2_h, ul3_h, ul4_h);
let min_ul;
let lis;
let classH;
for (var i = 0; i < ulList.length; i++) {
if (ulList[i].offsetHeight == minUl) {
min_ul = ulList[i];
}
classH = getRanddomHeight();
lis = '<li class="h' + classH + '"></li>';
}
$(min_ul).append(lis);
}
function getRanddomHeight() {
return Math.floor(Math.random() * 3 + 1);
}
$(function () {
for (var i = 0; i < 20; i++) {
appendLi();
}
});
$(window).on("scroll", function () {
if (
$(document).scrollTop() + $(window).height() >
$(document).height() - 20
) {
$(document).scrollTop($(document).scrollTop() - 10);
appendLi();
}
});
</script>
</body>
</html>