当前位置:网站首页>The year of the tiger is coming. Come and make a wish. I heard that the wish will come true
The year of the tiger is coming. Come and make a wish. I heard that the wish will come true
2022-07-07 05:31:00 【Don't eat fish D cat】
Preface
The year of the tiger is coming , Children , Big friends have big and small wishes . Come on , As a front-end xiaoxiaobai, I use css+js Wrote a new year wish wall , Come and make a wish
css part

Simple talk about css part , When we learn various programming languages , The deeper you learn , Often forget the simple content ,css You should still remember the basic content . ad locum , Wishing Wall css The style is mainly elastic box display: flex; ah , location position, Box shadow box-shadow:, Rounded border border-radius:, Weird box box-sizing And other background properties . Good looking web pages can also attract users , Enhance user experience , While pursuing cool functions , Don't forget the appearance of the web page .
Function part
Function one : After clicking send , Make a wish that the blessings sent on the wall can be sent in the form of a barrage

Function realization
When the click event triggers , Dynamically generate barrage
What is the principle of moving the barrage ?
Control the movement of the box , I thought of a timer , Change the moving distance in a cycle , It is equivalent to changing the direction of the positioning attribute of the box (position: absolute; left: ;top: ;), Let's encapsulate the movement of the box .
Formal parameter interpretation :ele Represents the object to be moved ,end Indicates the end of the barrage
// Encapsulate the moving distance of the barrage ,
function move(ele, end) {
var second = 3
var t = setInterval(function() {
var eLeft = parseInt(getComputedStyle(ele).left);
ele.style.left = eLeft - second + 'px'
if (eLeft - second <= end) {
clearInterval(t)
ele.remove();
console.log(2);
}
console.log(1);
}, 50)
}
When we watch the movie again , The barrage is definitely not generated at the same height , So how to make the box generate random height ?
Random height , Of course, you have to encapsulate random numbers . Change the positioning attribute of the box top value , Random change , Then the height of the box will change randomly , Be careful , The value of height also has limits .
The height of the box itself :
- offsetWidth:border+padding+ Content width
- clientwidth:padding+ Content width
// Encapsulated random number
function ran(min, max) {
return parseInt(Math.random() * (max - min) + min)
}
You can also change the random color of the font , Color Fonts
// Package random colors
function rancolor() {
var r = ran(0, 256)
var g = ran(0, 256)
var b = ran(0, 256)
return `rgb(${
r},${
g},${
b})`
}
Dynamically generate barrage ,createElement() Method , Then insert it into the position where the barrage is displayed appendChild() Method . Using template strings `` , Add the contents of the box , Display the values inside with interpolation expressions ${ } To display .
for example , We generate a barrage here . Here's a trick , First test what you want to add , style , Write the label first , Comment it out when it is implemented .
let oP = document.createElement('p')
oP.className = 'wall_p'
oCont.appendChild(oP)
// Add barrage
oP.innerHTML = `<img src="./images/xiaoxin_4.jpg" alt=""> <span style="color: black; font-size: 12px;font-weight: bold;">${
oInp1.value}</span> <span>:</span> <span>${
oInp2.value}</span> `
Function 2 :: After clicking send , Wish that the blessings sent on the wall can be saved in the form of post it notes ;

Function realization :
After the click event is triggered , Generate dynamic boxes
Like a barrage , Generate dynamic boxes , But the box won't move , The location of the box , Fixed in the display position by the value of the orientation of the positioning attribute . Of course, the box is also dynamically generated , Direction values are also randomly generated , The scope should be clear .
What to do after triggering the click event
oBtn.onclick = function() {
if (oInp1.value.trim() != '' && oInp2.value.trim() != '') {
var oP = document.createElement('p')
var oM = document.createElement('div')
oP.className = 'wall_p'
oM.className = 'memo'
oCont.appendChild(oP)
oCont.appendChild(oM)
// Add barrage
oP.innerHTML = `<img src="./images/xiaoxin_4.jpg" alt=""> <span style="color: black; font-size: 12px;font-weight: bold;">${
oInp1.value}</span> <span>:</span> <span>${
oInp2.value}</span> `
// Add notes
oM.innerHTML = ` <p class="time" >${
nowdate()}</p> <p class="content">${
oInp2.value}</p> <p class="name">${
oInp1.value}</p> `
oP.style.top = ran(0, oCont.clientHeight - oP.clientHeight) + 'px'
oM.style.top = ran(0, oCont.clientHeight - oM.clientHeight) + 'px'
oM.style.left = ran(0, oCont.clientWidth - oM.clientWidth) + 'px'
move(oP, -oP.clientWidth)
oP.style.color = rancolor();
oM.style.color = rancolor();
// oInp2.value = null
} else {
alert(' The input cannot be empty ')
}
}
Speaking of this , There are also improvements in the Wishing Wall , The data of the message is stored in the database , Users can see the content of other people's comments .
Source code address :
边栏推荐
- 1.AVL树:左右旋-bite
- Record a pressure measurement experience summary
- JVM(二十) -- 性能监控与调优(一) -- 概述
- 什么是依赖注入(DI)
- [question] Compilation Principle
- 漏电继电器JD1-100
- Make web content editable
- If you want to choose some departments to give priority to OKR, how should you choose pilot departments?
- How can professional people find background music materials when doing we media video clips?
- Leakage relay llj-100fs
猜你喜欢

SQL injection cookie injection

Under the trend of Micah, orebo and apple homekit, how does zhiting stand out?

照片选择器CollectionView

pytest测试框架——数据驱动

利用OPNET进行网络单播(一服务器多客户端)仿真的设计、配置及注意点

Jhok-zbl1 leakage relay

论文阅读【Open-book Video Captioning with Retrieve-Copy-Generate Network】

导航栏根据路由变换颜色

DOM node object + time node comprehensive case

Mysql database learning (8) -- MySQL content supplement
随机推荐
[JS component] date display.
K6EL-100漏电继电器
Tencent cloud database public cloud market ranks top 2!
Aidl and service
Creation and use of thread pool
Mybaits之多表查询(联合查询、嵌套查询)
Safe landing practice of software supply chain under salesforce containerized ISV scenario
App clear data source code tracking
EGR-20USCM接地故障继电器
[JS component] custom select
【oracle】简单的日期时间的格式化与排序问题
模拟线程通信
Use, configuration and points for attention of network layer protocol (taking QoS as an example) when using OPNET for network simulation
Is the human body sensor easy to use? How to use it? Which do you buy between aqara green rice and Xiaomi
JHOK-ZBG2漏电继电器
[optimal web page width and its implementation] [recommended collection "
Leakage relay llj-100fs
实现网页内容可编辑
[Oracle] simple date and time formatting and sorting problem
batch size设置技巧