2012-05-21 8 views
5

मैं "मार्की" है कि आगे और पीछे स्क्रॉल एक वेबसाइट पर एक एनिमेटेड एचटीएमएल बनाना चाहते हैं बाएं से पाठ:सीएसएस चलती सही

<div class="marquee">This is a marquee!</div> 

और सीएसएस:

.marquee { 
    position: absolute; 
    white-space: nowrap; 
    -webkit-animation: rightThenLeft 4s linear; 
} 

@-webkit-keyframes rightThenLeft { 
    0% {left: 0%;} 
    50% {left: 100%;} 
    100% {left: 0%;} 
} 

समस्या है, जब यह स्क्रीन के दाएं किनारे तक पहुंचता है तो मार्की रुकता नहीं है; यह स्क्रीन से सभी तरह से चलता है (एक क्षैतिज स्क्रॉल बार को संक्षिप्त रूप से प्रकट करता है) और फिर वापस आता है।

तो, जब मैं दाएं हाथ के किनारे स्क्रीन के दाईं ओर किनारे तक पहुंचता हूं तो मैं मार्की स्टॉप कैसे बना सकता हूं?

संपादित करें: अजीब तरह, यह काम नहीं करता:

50% {right: 0%} 
+0

सीएसएस संपत्ति –

+0

@Webtecher का उपयोग करके एनीमेशन को रोकने के लिए जावास्क्रिप्ट का उपयोग करें जावास्क्रिप्ट को एनीमेशन को रोकने के लिए कैसे पता चलेगा? –

+0

बाएं के बजाए: 100% इसे छोड़ा जाना चाहिए: '100% - (सिंगल कैरेक्टर द्वारा ली गई स्ट्रिंग * स्पेस में वर्णों की संख्या) 'अब, जाहिर है कि आप सीएसएस में ऐसी चीजें नहीं करेंगे। 'बाएं 'या' दाएं 'का उपयोग करने के बजाय बेहतर,' मार्जिन-बाएं 'या' मार्जिन-दाएं 'का उपयोग करें। –

उत्तर

3

किसी तरह मैं मार्जिन-सही उपयोग कर, और दाईं से बाईं ओर ले जाने के लिए निर्धारित कर उसे काम करने के लिए मिल गया। http://jsfiddle.net/gXdMc/

पता नहीं क्यों इस मामले के लिए, मार्जिन-दाएं 100% स्क्रीन से नहीं निकलता है। : डी (क्रोम 18 पर परीक्षण)

संपादित करें: अब बाएं से दाएं भी काम करता है http://jsfiddle.net/6LhvL/

+0

सफारी पर भी परीक्षण किया गया। ठीक काम कर रहा है :) –

+0

हाँ यह काम करता है, धन्यवाद :)। उम्मीद है कि कोई इस बात पर टिप्पणी कर सकता है कि ऐसा क्यों है। मुझे लगता है कि यह आपके {टेक्स्ट-एलाइन: दाएं;} –

+0

@ tanis.control आपके प्रश्न में मेरी टिप्पणी देख रहा है। –

0

अगर मैं तुम्हें सही ढंग से सवाल को समझते हैं, तो आप अपने मार्की के चारों ओर एक आवरण बना सकते हैं और उसके बाद रैपिंग तत्व करने के लिए एक width (या max-width) आवंटित। उदाहरण के लिए:

<div id="marquee-wrapper"> 
    <div class="marquee">This is a marquee!</div> 
</div> 

और फिर #marquee-wrapper { width: x }

+0

पर बदल दें, मैंने भी इसके बारे में सोचा, लेकिन यह काम नहीं करता है। {बाएं: 100%} यह स्क्रीन से सभी तरह से आगे बढ़ता है। मेरी इच्छा है कि मैं कर सकता हूं {बाएं: 100% - 30 पीएक्स} –

0

मुझे यकीन नहीं है कि यह सही समाधान है, लेकिन मैंने एनीमेशन सीएसएस के बाद .marquee क्लास को फिर से परिभाषित करके हासिल किया है।

नीचे की जांच:

<style> 
#marquee-wrapper{ 
    width:700px; 
    display:block; 
    border:1px solid red; 
} 

div.marquee{ 
width:100px; 
height:100px; 
background:red; 
position:relative; 
animation:myfirst 5s; 
-moz-animation:myfirst 5s; /* Firefox */ 
} 

@-moz-keyframes myfirst /* Firefox */{ 
0% {background:red; left:0px; top:0px;} 
100% {background:red; left:100%; top:0px} 
} 
div.marquee{ 
left:700px; top:0px 
} 
</style> 

<!-- HTMl COde --> 

<p><b>Note:</b> This example does not work in Internet Explorer and Opera.</p> 
<div id="marquee-wrapper"> 
<div class="marquee"></div> 
1

हाय आप की <marquee behavior="alternate"></marquee>

एचटीएमएल

<div class="wrapper"> 
<marquee behavior="alternate"><span class="marquee">This is a marquee!</span></marquee> 
</div> 

उपयोग के साथ अपने परिणाम प्राप्त कर सकते हैं सीएसएस

.wrapper{ 
    max-width: 400px; 
    background: green; 
    height: 40px; 
    text-align: right; 
} 

.marquee { 
    background: red; 
    white-space: nowrap; 
    -webkit-animation: rightThenLeft 4s linear; 
} 

डेमो देखें: - http://jsfiddle.net/gXdMc/6/

+0

दुर्भाग्य से, बहिष्कृत। – wizzwizz4

4

आप बस CSS animated text generator इस्तेमाल कर सकते हैं। पहले से बनाए गए टेम्पलेट्स पहले से ही

1

मुझे div तत्वों के बाहर होने वाली चीज़ों को रोकने के लिए निम्न का उपयोग करना पसंद है। यह सीएसएस रोलओवर के साथ भी मदद करता है।

.marquee{ 
    overflow:hidden; 
} 

यह कुछ भी छिपाएगा जो div के बाहर/बाहर है जो ब्राउज़र को विस्तारित करने और स्क्रॉल बार प्रकट होने से रोक देगा।

संबंधित मुद्दे