2014-10-14 2 views
1

Абсолютный новичок здесь. На прошлой неделе буквально только начал работать с HTML.Альтернативы HTML Marquee

Я пытаюсь придумать какой-то эффект выделения, который можно поместить в html-кодирование на веб-сайте. У нас есть базовые настройки HTML, но это трудно и трудно читать. Я понятия не имею, куда пойти с этим.

+5

Никогда не используйте 'marquee'. Ваши пользователи будут ненавидеть вас за это. Была причина, по которой они [удалили это] (http://www.w3.org/TR/html5/obsolete.html): «Переходы и анимация CSS - более подходящий механизм». –

+1

@PatrickHofman Практически каждый новостной канал, который я видел, использует тиккер, похожий на шатер, чтобы показывать новости, о которых они сейчас не говорят. Там * * допустимые применения для выделения, но «потому что это круто» определенно не один из них :) –

+0

@NiettheDarkAbsol: Хорошо. Но я все еще ненавижу их. –

ответ

3

Вы можете использовать jQuery для архивирования результата выделения.

посмотреть здесь: http://plugins.jquery.com/marquee/ и здесь: http://aamirafridi.com/jquery/jquery-marquee-plugin#examples

Как уже упоминались: Не когда-либо использовать шатер

поиск Google для «шатрового JQuery» перечисляет много результатов

+0

Как сейчас, это ответ только для ссылок. –

+0

Мне очень жаль снова спрашивать, но я не совсем понимаю, что такое jQuery, как включить его в кодировку HTML. – Jen

+0

jQuery - это JavaScript-фреймворк, который позволяет вам добавлять JavaScript на ваш сайт очень просто. Вы добавляете библиотеки jQuery (и «основную» -библиотеку jQuery), которую вы хотите использовать в разделе html head, и использовали его, как указано в моей второй ссылке выше. – Wavemaster

0

Там нет простой альтернативы шатер. Если вы хотите найти стандартное решение, вы должны быть экспертом javascript-программистом, и вместо простого тега html вам нужно перейти ко многим строкам кода.

Большинство стандартных веб-браузеров поддерживает его (за исключением Google Chrome он не может отобразить его в стандартном шаге).

Для Chrome (и хром необходим только что) вы могли бы использовать этот код яваскрипта ... вам не нужно использовать это для (IE, EDGE, Mozilla, Opera и т.д.) ...

var oMarquees = [], oMrunning, 
     oMInterv =  20,  //interval between increments 
     oMStep =   1,  //number of pixels to move between increments 
     oStopMAfter =  0,  //how many seconds should marquees run (0 for no limit) 
     oResetMWhenStop = false, //set to true to allow linewrapping when stopping 
     oMDirection =  'right'; //'left' for LTR text, 'right' for RTL text 

/***  Do not edit anything after here  ***/ 
function doMStop() { 
     clearInterval(oMrunning); 
     for(var i = 0; i < oMarquees.length; i++) { 
       oDiv = oMarquees[i]; 
       if(oResetMWhenStop) { 
         oDiv.mchild.style.cssText = oDiv.mchild.style.cssText.replace(/;white-space:nowrap;/g,''); 
         oDiv.mchild.style.whiteSpace = ''; 
         oDiv.style.height = ''; 
         oDiv.style.overflow = ''; 
         oDiv.style.position = ''; 
         oDiv.mchild.style.position = ''; 
         oDiv.mchild.style.top = ''; 
       } 
     } 
     oMarquees = []; 
} 
function doDMarquee() { 
     if(oMarquees.length || !document.getElementsByTagName) { return; } 
     var oDivs = document.getElementsByTagName('div'); 
     for(var i = 0, oDiv; i < oDivs.length; i++) { 
       oDiv = oDivs[i]; 
       if(oDiv.className && oDiv.className.match(/\bdmarquee\b/)) { 
         if(!(oDiv = oDiv.getElementsByTagName('div')[0])) { continue; } 
         if(!(oDiv.mchild = oDiv.getElementsByTagName('div')[0])) { continue; } 
         oDiv.mchild.style.cssText += ';white-space:nowrap;'; 
         oDiv.mchild.style.whiteSpace = 'nowrap'; 
         oDiv.style.height = oDiv.offsetHeight + 'px'; 
         oDiv.style.overflow = 'hidden'; 
         oDiv.style.position = 'relative'; 
         oDiv.mchild.style.position = 'absolute'; 
         oDiv.mchild.style.top = '0px'; 
         oDiv.mchild.style[oMDirection] = (oDiv.mchild.style[oMDirection] == '')?(oDiv.offsetWidth + 'px'):oDiv.mchild.style[oMDirection]; 
         oMarquees[oMarquees.length] = oDiv; 
         i += 2; 
       } 
     } 
     oMrunning = setInterval('aniMarquee()',oMInterv); 
     if(oStopMAfter) { setTimeout('doMStop()',oStopMAfter*1000); } 
} 
function aniMarquee() { 
     var oDiv, oPos; 
     for(var i = 0; i < oMarquees.length; i++) { 
       oDiv = oMarquees[i].mchild; 
       oPos = parseInt(oDiv.style[oMDirection]); 
       if(oPos <= -1 * oDiv.offsetWidth) { 
         oDiv.style[oMDirection] = oMarquees[i].offsetWidth + 'px'; 
       } else { 
         oDiv.style[oMDirection] = (oPos - oMStep) + 'px'; 
       } 
     } 
} 
if(window.addEventListener) { 
     window.addEventListener('load',doDMarquee,false); 
} else if(document.addEventListener) { 
     document.addEventListener('load',doDMarquee,false); 
} else if(window.attachEvent) { 
     window.attachEvent('onload',doDMarquee); 
} 
+0

вы можете создать аналогичный эффект с помощью CSS. Более большой вопрос: зачем вам это нужно? –

0

Я бы посоветовал вместо этого использовать карусель. У пользователя больше контроля над ним, так как карусель можно остановить и начать с щелчка мышью.

Материал Дизайн карусельного здесь: http://materializecss.com/carousel.html