第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問將元素的計算樣式返回給偽克隆元素的jQueryCSS插件?

請問將元素的計算樣式返回給偽克隆元素的jQueryCSS插件?

海綿寶寶撒 2019-10-21 16:12:20
將元素的計算樣式返回給偽克隆元素的jQueryCSS插件?我正在尋找一種使用jQuery返回第一個匹配元素的計算樣式對象的方法。然后,我可以將這個對象傳遞給jQuery的CSS方法的另一個調(diào)用。例如,用寬度,我可以做以下操作,使兩個div具有相同的寬度:$('#div2').width($('#div1').width());如果我能使文本輸入看起來像現(xiàn)有的跨度:$('#input1').css($('#span1').css());不帶參數(shù)的.css()返回可以傳遞給.css(Obj).(我找不到一個jQuery插件,但它似乎應該存在。如果它不存在,我將把下面的插件變成一個插件,并將它與我使用的所有屬性一起發(fā)布。)基本上,我想要偽克隆某些元素但是使用不同的標簽..例如,我有安莉元素,我想隱藏,并將一個輸入元素放在上面,看起來是一樣的。當用戶輸入時,看起來他們是在內(nèi)聯(lián)地編輯元素。.對于這個偽克隆問題,我也愿意使用其他方法進行編輯。有什么建議嗎?這是我目前所擁有的。唯一的問題是得到所有可能的樣式。這可能是一長得離譜的名單。jQuery.fn.css2 = jQuery.fn.css;jQuery.fn.css = function() {     if (arguments.length) return jQuery.fn.css2.apply(this, arguments);     var attr = ['font-family','font-size','font-weight','font-style','color',     'text-transform','text-decoration','letter-spacing','word-spacing',     'line-height','text-align','vertical-align','direction','background-color',     'background-image','background-repeat','background-position',     'background-attachment','opacity','width','height','top','right','bottom',     'left','margin-top','margin-right','margin-bottom','margin-left',     'padding-top','padding-right','padding-bottom','padding-left',     'border-top-width','border-right-width','border-bottom-width',     'border-left-width','border-top-color','border-right-color',     'border-bottom-color','border-left-color','border-top-style',     'border-right-style','border-bottom-style','border-left-style','position',     'display','visibility','z-index','overflow-x','overflow-y','white-space',     'clip','float','clear','cursor','list-style-image','list-style-position',     'list-style-type','marker-offset'];     var len = attr.length, obj = {};     for (var i = 0; i < len; i++)          obj[attr[i]] = jQuery.fn.css2.call(this, attr[i]);     return obj;}編輯:我已經(jīng)使用上述代碼一段時間了。它工作得很好,行為與原來的CSS方法完全一樣,只有一個例外:如果傳遞了0 args,它將返回計算樣式對象。如您所見,如果應用的是原來的CSS方法,它會立即調(diào)用該方法。否則,它將獲取所有列出的屬性的計算樣式(從Firebug的計算樣式列表中收集)。雖然它得到了一長串的值,但速度相當快。希望它對別人有用。
查看完整描述

3 回答

?
MYYA

TA貢獻1868條經(jīng)驗 獲得超4個贊

這不是jQuery,但在Firefox、Opera和Safari中,您可以使用window.getComputedStyle(element)要獲得元素的計算樣式,在IE<=8中,可以使用element.currentStyle..在每種情況下,返回的對象都是不同的,我不確定這兩種方法對使用Javascript創(chuàng)建的元素和樣式的工作效果有多好,但也許它們會很有用。

在Safari中,您可以執(zhí)行以下操作:

document.getElementById('b').style.cssText = window.getComputedStyle(document.getElementById('a')).cssText;




查看完整回答
反對 回復 2019-10-22
?
米琪卡哇伊

TA貢獻1998條經(jīng)驗 獲得超6個贊

我不知道你對到目前為止得到的答案是否滿意,但我不滿意,我的答案也可能不會讓你滿意,但它可能會幫助其他人。

經(jīng)過思考如何“克隆”或“復制”元素的風格從一個到另一個,我已經(jīng)認識到,它不是非常理想的方法,通過n和應用于N2,但我們還是堅持這一點。

當您發(fā)現(xiàn)自己面臨這些問題時,您很少需要將所有樣式從一個元素復制到另一個元素。你通常有一個特定的理由想要“一些”風格的應用。

以下是我回到的內(nèi)容:

$.fn.copyCSS = function( style, toNode ){
  var self = $(this);
  if( !$.isArray( style ) ) style=style.split(' ');
  $.each( style, function( i, name ){ toNode.css( name, self.css(name) ) } );
  return self;}

您可以將一個以空格分隔的css屬性列表作為第一個參數(shù)傳遞給它,并將希望克隆它們的節(jié)點作為第二個參數(shù)傳遞給它,如下所示:

$('div#copyFrom').copyCSS('width height color',$('div#copyTo'));

在那之后,不管其他看起來“不對齊”的地方,我都會嘗試用樣式表來修正,這樣我的Js就不會被太多錯誤的想法弄得亂七八糟。



查看完整回答
反對 回復 2019-10-22
  • 3 回答
  • 0 關注
  • 230 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號