導航:首頁 > 編程語言 > 前端js點贊控制

前端js點贊控制

發布時間:2023-02-15 17:37:45

1. web前端里的js技術

js可以做的東西有很多啊

可以做特效,可以操作頁面控制項,如果版使用ajax,還可以用權來操作數據。

如果你能把特效做好,那別的東西你應該也就不成問題了。

例如當表單提交的時候做輸入判斷,登錄時做cookie設置,頁面操作時的隱藏、顯示、定位等操作,很多哦

2. Jquery能實現所有javascript的功能嗎

我先把jquery的概念給你寫在下面吧,因為通過你的問題,我發現你對Jquery的理解有問題:
Jquery是一個優秀的Javascript框架。它是輕量級的js庫 ,它兼容CSS3,還兼容各種瀏覽器。jQuery使用戶能更方便地處理HTML documents、events、實現動畫效果,並且方便地為網站提供AJAX交互。jQuery還有一個比較大的優勢是,它的文檔說明很全,而且各種應用也說得很詳細,同時還有許多成熟的插件可供選擇。jQuery能夠使用戶的html頁面保持代碼和html內容分離,也就是說,不用再在html裡面插入一堆js來調用命令了,只需定義id即可。

然後說說你的問題吧,通過上面的定義你應該可以看出來,總結就是:
從某個角度來說Jquery和javascript實現的功能差別不大,只不過在某些地方Jquery節省了javascript的某些步驟而已。
而你說的這些功能基本都是需要和後台交互,然後通過業務邏輯和控制處理來實現的。Jquery和javascript都可以實現,他們所負責的只是前台的顯示,和一些前台頁面顯示的數據的向後台(servlet等類似java文件)傳遞參數,並接受傳遞回來的參數的過程。簡單的說就是一個傳遞和接受參數然後根據需要在前台頁面顯示的作用。。。如果單獨靠jquery活者javascript是無法完成你上面描述的任何一個功能的

不明白請追問,如果對你有幫助,記得採納~

3. 前端js之event事件(一)

前言:有些事情看上去簡單甚至於平淡無奇,比如說愛情或者我們的生活可實際上卻很復雜。js裡面的event也是一樣,不信就列印一下一個平淡無奇的onclick裡麵包含的event,只要在方法內傳入參數event,或者e,還有ev然後列印,你就會發現一個新的天地。

核心內容:多種事件的運用場景解析

開始了

1吹牛逼

2吹牛逼

3也許我別來,你自然無恙

A:復雜多樣的滑鼠事件

應用:滑鼠事件很多,平時用個點擊就以為用過那就大錯特錯了,滑鼠事件不僅有原生的點擊,雙擊,移動,進入,移出,懸浮,可以列印event裡面的type查看,還有一些比如jq封裝的事件,這些事件而且會相互觸發,比如移動move是最容易被其他事件觸發,或者原生的拖拽事件,不僅有自己的事件,而且會觸發元素上的很多其他事件。

B:為什麼會這樣呢?

解析:第一本身不同事件類型但是相近的滑鼠操作就會同時觸發,第二在多層dom結構中的事件,由於本身事件的冒泡機制,由最底層的元素向上冒泡,到父元素到document到window,以至於類似事件不同方法但是同時觸發

C:怎麼解決

辦法:比如現象一:只想觸發最底層的元素的點擊事件,不觸發其父元素的點擊事件,解決方案阻止冒泡。現象二:類型相近事件相互觸發,導致方法重復執行,解決方案在易促發的事件的方法中可以加入條件判斷,是否已經執行過相同操作,如果有要麼直接return,如果還有其他操作判斷,可以將可能重復的那個操作進行重置。現象三:原生方法事件以及簡單事件相互交叉影響導致最後滑鼠事件失靈,定義的方法不能執行,頁面不可控制,解決方案單個功能實現後進行方法設為null如dom.onclick=null,然後設置dom對象釋放捕獲。

event事件實在太多太復雜了,正如人生一樣,可是有時候多一點細心多一點耐心,沒事多打打斷點和測試,我們會看得更加清晰,正如我若別來,你自然無恙,越是糾結,越是沉淪,往往簡單最好。

事件人生,人生事件,簡單復雜,復雜簡單,一正一反,經歷了自然會成長,花香了自然蝶飛舞。

4. js 頁面循環 點擊事件

function Praise($userid, $messagesid) {

if($(this).val()=='點贊來自'){
$(this).val("取消");
} else{
$(this).val("點贊");
}

//每個按鈕 都添加 onclick="Praise('{{$user->id}}','{{$val['id']}}')"

無需foreach。

5. 前端-JS自定義屬性

在日常的開發當中,我們會發現系統定義的屬性沒有辦法滿足我們的開發,所以我們需要自己去定義屬性。下面分享一個定義屬性的實例:

上面的例子簡單實現了JS的自定義屬性以及自定義屬性的使用,希望對看文章的小夥伴有所幫助。

6. jQuery或js點贊功能代碼,並且要把數據傳到資料庫

首先只需要在body中定義一個button。和盛放心的盒子

<div id = "demo"></div>
<input type = "button" id = "btn1" value = "點個贊吧" />

由於還要引進心的圖片,所以在這里我們在設置css樣式的時候還要設置圖片img的樣式。
css代碼如下:

<style type="text/css">
*{
margin: 0px;
padding: 0px;
}

#btn1{
position: absolute;
bottom:100px;
width: 200px;
background-color: lightblue;
font-size: 18px;
left:45%;
}
img{
bottom:100px;
margin-left: -15px;
width: 20px;
height:20px;
position: absolute;
left: 50%;
}
</style>

下來就是要寫jquery函數。

(document).ready(function(){
// 1. 首先給按鈕綁定點擊事件。(「#btn1」).click(function(){
//2. 生成彩色的心,即隨機選擇圖片。
// 2.1 生成隨機數
var num = Math.floor(Math.random() * 3 +1);
//2.2 生成一個img元素,並為其添加src屬性
var image = $(「」);

//三個圖片的名字分別是 1.png\2.png\3.png,所以img的路徑和圖片名可以進行線面的字元串拼接
image.attr(「src」,」./images/」+num+」.png」);

//3。將生成的img追加到頁面上

$(「#demo」).append(image);

//4. 下來就是讓心動起來。從點擊按鈕的地方向上飄。利用jquery的動畫函數animate()

//生成隨機的距離左邊的距離,這樣就可以使心有種向上飄的感覺
var left = Math.random() * 800;

image.animate({
『bottom':'800px',
『left':left,
『opacity':'0'
},3000);
});

});
});

7. 前端基本功:JS(十一)動畫封裝(CSS樣式獲取、JSON遍歷)

盒子 原來的位置 0 + 10 盒子現在的offsetLeft 10

|-5| = 5

這三個函數都是 數學函數
Math

比如說 console.log(Math.ceil(1.01)) 結果 是 2
console.log(Math.ceil(1.9)) 結果 2
console.log(Math.ceil(-1.3)) 結果 是 -1

比如說 console.log(Math.floor(1.01)) 結果 是 1
console.log(Math.floor(1.9)) 結果 1
console.log(Math.floor(-1.3)) 結果 是 -2

console.log(Math.round(1.01)) 結果 是 1
console.log(Math.round(1.9)) 結果 是 2

勻速動畫的原理: 盒子本身的位置 + 步長
緩動動畫的原理: 盒子本身的位置 + 步長 (不斷變化的)

( 缺陷:只能水平方向!隨後的「封裝運動框架單個屬性會進一步改進」 )

我們訪問得到css 屬性,比較常用的有兩種:

點語法可以得到 width 屬性 和 top屬性 ** 帶有單位的 。 100px
但是這個語法有非常大的
缺陷**, 不變的。
後面的width 和 top 沒有辦法傳遞參數的。
var w = width;
box.style.w

最大的優點 : 可以給屬性傳遞參數

我們想要獲得css 的樣式, box.style.left 和 box.style.backgorundColor
但是它只能得到 行內的樣式。
但是我們工作最多用的是 內嵌式 或者 外鏈式 。
怎麼辦?
核心: 我們怎麼才能得到內嵌或者外鏈的樣式呢?

外部(使用<link>)和內嵌(使用<style>)樣式表中的樣式(ie和opera)

兩個選項是必須的, 沒有偽類 用 null 替代

我們這個元素裡面的屬性很多, left top width ===
我們想要某個屬性, 就應該 返回該屬性,所有繼續封裝 返回當前樣式的 函數。

千萬要記得 每個 的意思 : 那是相當重要

flag在js中一般作為開關,進行判斷。

等動畫執行完畢再去執行的函數 回調函數
我們怎麼知道動畫就執行完畢了呢?
很簡單 當定時器停止了。 動畫就結束了

案例源碼:

in運算符也是一個二元運算符,但是對運算符左右兩個操作數的要求比較嚴格。in運算符要求第1個(左邊的)操作數必須是字元串類型或可以轉換為字元串類型的其他類型,而第2個(右邊的)操作數必須是數組或對象。只有第1個操作數的值是第2個操作數的屬性名,才會返回true,否則返回false

案例源碼:

鏈接: http://pan..com/s/1miEvqoo

密碼:7fv8

8. 關於js的onchange事件

雖然我沒用過微信的控制項,但根據你說的,瀏覽器的開發者工具能看到控制項最終生成的input和class,那麼你直接用on 預綁定事件不就行了?

jQuery on:使用 on() 方法添加的事件處理程序適用於當前及未來的元素(比如由腳本創建的新元素)。

$(document).on('change','input.class',function(){
alert();
});

9. 前端js防止用戶惡意操作,重復點擊按鈕事件

前幾天遇到了一個關於前端重復點擊事件問題,防止用戶惡意操作,重復點擊按鈕事件,有二個邏輯解決此問題:

1.

2.定義變數保存每次點擊的時間,上次和當前次點擊的時間間隔小於某個時間,就return掉,否則就繼續之後步驟,類似於

this.state={ clickTime:new Date().getTime()}

  buyCard(){ 

   var {clickTime} =this.state;

    var nowTime = new Date().getTime();

     if( clickTime != 'undefined'&& (nowTime - clickTime < 500)){

               return false;

     }else{

        this.setSate({clickTime:nowTime})

        .....

     }       

}

10. 前端開發中常用到的js特效有哪些

HTML5 DOM 選擇器
// querySelector() 返回匹配到的第一個元素var item = document.querySelector('.item');console.log(item);// querySelectorAll() 返回匹配到的所有元素,是一個nodeList集合var items = document.querySelectorAll('.item');console.log(items[0]);1234567

阻止默認行為
// 原生jsdocument.getElementById('btn').addEventListener('click', function (event) { event = event || window.event; if (event.preventDefault){ // w3c方法 阻止默認行為
event.preventDefault();
} else{ // ie 阻止默認行為
event.returnValue = false;
}
}, false);// jQuery$('#btn').on('click', function (event) { event.preventDefault();
});1234567891011121314151617

阻止冒泡
// 原生jsdocument.getElementById('btn').addEventListener('click', function (event) { event = event || window.event; if (event.stopPropagation){ // w3c方法 阻止冒泡
event.stopPropagation();
} else{ // ie 阻止冒泡
event.cancelBubble = true;
}
}, false);// jQuery$('#btn').on('click', function (event) { event.stopPropagation();
});1234567891011121314151617

滑鼠滾輪事件
$('#content').on("mousewheel DOMMouseScroll", function (event) {
// chrome & ie || // firefox
var delta = (event.originalEvent.wheelDelta && (event.originalEvent.wheelDelta > 0 ? 1 : -1)) || (event.originalEvent.detail && (event.originalEvent.detail > 0 ? -1 : 1));

if (delta > 0) {
// 向上滾動
console.log('mousewheel top');
} else if (delta < 0) { // 向下滾動
console.log('mousewheel bottom');
}
});123456789101112

檢測瀏覽器是否支持svg
function isSupportSVG() {
var SVG_NS = 'http://www.w3.org/2000/svg'; return !!document.createElementNS &&!!document.createElementNS(SVG_NS, 'svg').createSVGRect;
}

// 測試console.log(isSupportSVG());1234567

檢測瀏覽器是否支持canvas
function isSupportCanvas() {
if(document.createElement('canvas').getContext){ return true;
}else{ return false;
}
}// 測試,打開谷歌瀏覽器控制台查看結果console.log(isSupportCanvas());12345678910

檢測是否是微信瀏覽器
function isWeiXinClient() {
var ua = navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i)=="micromessenger") {
return true;
} else {
return false;
}
}// 測試alert(isWeiXinClient());1234567891011

jQuery 獲取滑鼠在圖片上的坐標
$('#myImage').click(function(event){
//獲取滑鼠在圖片上的坐標
console.log('X:' + event.offsetX+'\n Y:' + event.offsetY);

//獲取元素相對於頁面的坐標
console.log('X:'+$(this).offset().left+'\n Y:'+$(this).offset().top);
});1234567

驗證碼倒計時代碼
<!-- dom --><input id="send" type="button" value="發送驗證碼">12
// 原生js版本var times = 60, // 臨時設為60秒
timer = null;

document.getElementById('send').onclick = function () {
// 計時開始
timer = setInterval(function () {
times--; if (times <= 0) {
send.value = '發送驗證碼';
clearInterval(timer);
send.disabled = false;
times = 60;
} else {
send.value = times + '秒後重試';
send.disabled = true;
}
}, 1000);
}
// jQuery版本var times = 60,
timer = null;

$('#send').on('click', function () {
var $this = $(this); // 計時開始
timer = setInterval(function () {
times--; if (times <= 0) {
$this.val('發送驗證碼');
clearInterval(timer);
$this.attr('disabled', false);
times = 60;
} else {
$this.val(times + '秒後重試');
$this.attr('disabled', true);
}
}, 1000);
});2122

常用的一些正則表達式
//匹配字母、數字、中文字元
/^([A-Za-z0-9]|[\u4e00-\u9fa5])*$/

//驗證郵箱
/^\w+@([0-9a-zA-Z]+[.])+[a-z]{2,4}$/

//驗證手機號
/^1[3|5|8|7]\d{9}$/

//驗證URL
/^http:\/\/.+\./

//驗證身份證號碼
/(^\d{15}$)|(^\d{17}([0-9]|X|x)$)/

//匹配中文字元的正則表達式
/[\u4e00-\u9fa5]/

//匹配雙位元組字元(包括漢字在內)
/[^\x00-\xff]/

js時間戳、毫秒格式化
function formatDate(now) {
var y = now.getFullYear(); var m = now.getMonth() + 1; // 注意js里的月要加1
var d = now.getDate(); var h = now.getHours();
var m = now.getMinutes();
var s = now.getSeconds(); return y + "-" + m + "-" + d + " " + h + ":" + m + ":" + s;
}

var nowDate = new Date(2016, 5, 13, 19, 18, 30, 20);

console.log(nowDate.getTime()); // 獲得當前毫秒數: 1465816710020console.log(formatDate(nowDate));123456789101112131415

js限定字元數(注意:一個漢字算2個字元)
<input id="txt" type="text">//字元串截取function getByteVal(val, max) {
var returnValue = ''; var byteValLen = 0; for (var i = 0; i < val.length; i++) { if (val[i].match(/[^\x00-\xff]/ig) != null) byteValLen += 2; else byteValLen += 1; if (byteValLen > max) break;
returnValue += val[i];
} return returnValue;
}

$('#txt').on('keyup', function () {
var val = this.value; if (val.replace(/[^\x00-\xff]/g, "**").length > 14) { this.value = getByteVal(val, 14);
}
});12345678910111213141516171819

js判斷是否移動端及瀏覽器內核
var browser = {
versions: function() {
var u = navigator.userAgent;
return {
trident: u.indexOf('Trident') > -1, //IE內核
presto: u.indexOf('Presto') > -1, //opera內核
webKit: u.indexOf('AppleWebKit') > -1, //蘋果、谷歌內核
gecko: u.indexOf('Firefox') > -1, //火狐內核Gecko
mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否為移動終端
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android
iPhone: u.indexOf('iPhone') > -1 , //iPhone
iPad: u.indexOf('iPad') > -1, //iPad
webApp: u.indexOf('Safari') > -1 //Safari
};
}
}

if (browser.versions.mobile() || browser.versions.ios() || browser.versions.android() || browser.versions.iPhone() || browser.versions.iPad()) {
alert('移動端');
}21

之前我用過一個檢測客戶端的庫 覺得挺好用的,也推薦給大家 叫 device.js,大家可以 Googel 或 網路
GItHub倉庫地址:https://github.com/matthewhudson/device.js
getBoundingClientRect() 獲取元素位置
//它返回一個對象,其中包含了left、right、top、bottom四個屬性var myDiv = document.getElementById('myDiv');var x = myDiv.getBoundingClientRect().left;
var y = myDiv.getBoundingClientRect().top;

// 相當於jquery的: $(this).offset().left、$(this).offset().top // js的:this.offsetLeft、this.offsetTop123456

HTML5全屏
function fullscreen(element) {
if (element.requestFullscreen) {
element.requestFullscreen();
} else if (element.mozRequestFullScreen) {
element.mozRequestFullScreen();
} else if (element.webkitRequestFullscreen) {
element.webkitRequestFullscreen();
} else if (element.msRequestFullscreen) {
element.msRequestFullscreen();
}}

fullscreen(document.documentElement);12345678910111213

閱讀全文

與前端js點贊控制相關的資料

熱點內容
qq文件其他軟體打開 瀏覽:468
win10區域網共享剪輯 瀏覽:621
鑒定文件圖樣包含哪些 瀏覽:193
文件處理格式 瀏覽:831
36周的數據是多少 瀏覽:950
裝win10系統重新分區嗎 瀏覽:882
微信已被清理的文件 瀏覽:771
ug8的例圖在哪個文件夾里 瀏覽:641
dat文件轉換avi 瀏覽:173
安卓編程里上下邊距怎麼寫 瀏覽:427
雲班課文件在哪個文件夾 瀏覽:298
健康碼用到了哪些方面的大數據 瀏覽:379
蘋果手機拆裝教程 瀏覽:244
excel抓取文件鏈接 瀏覽:510
魔靈召喚主角升級 瀏覽:746
linux文件系統實驗 瀏覽:897
怎麼讀取電腦資料庫中的數據 瀏覽:443
蘋果7怎麼開啟鎖屏密碼 瀏覽:98
怎麼找到圖片上的文件 瀏覽:644
qq接收文件轉移 瀏覽:323

友情鏈接