2017-03-22 6 views
5

मैं जानना चाहता हूं कि मेरे सामने वाले पृष्ठ के लिए केवल मोबाइल उपयोगकर्ताओं के लिए समर्पित छवि लोड करना संभव है या नहीं। मुझे पता है कि यह जावास्क्रिप्ट के साथ संभव है, लेकिन मैं जानना चाहता हूं कि मैं केवल सीएसएस का उपयोग करके इसे प्राप्त कर सकता हूं। मैंने कुछ शोध करने की कोशिश की है लेकिन मैं जो खोज रहा हूं उसे नहीं मिल सका। मेरा मतलब स्क्रीन आकार के आधार पर छवि का आकार बदलना नहीं है, बल्कि मोबाइल-अनुकूल छवि लोड करना है।केवल मोबाइल डिवाइस के लिए एक छवि लोड करें

+0

आप एचटीएमएल आईएमजी या सीएसएस पृष्ठभूमि का उपयोग कर मतलब है। – frnt

+0

@frnt सीएसएस पृष्ठभूमि का उपयोग :) –

उत्तर

2

हाँ यह संभव है। आप मीडिया क्वेरी का उपयोग कर सकते हैं। उदाहरण सीएसएस:

#yourimage { 
    display: none; 
} 

@media (max-width: 500px) { 
    #yourimage { 
     display: block; 
    } 
} 

यह कोड एचटीएमएल छवियों के लिए है। यहाँ एक JSFiddle है:

https://jsfiddle.net/vqfLokpa/

बस मारा रन और फिर अपने ब्राउज़र विंडो छोटा करने के लिए शुरू करते हैं।

+0

अरे, आपकी प्रतिक्रिया के लिए धन्यवाद। परिदृश्य है, मेरे पास दो छवियां हैं। उनमें से एक डेस्कटॉप वेबसाइट के लिए है, और यह काफी बड़ा है। लेकिन एक छोटी स्क्रीन (मोबाइल) के लिए, मैं उस तस्वीर के छोटे संस्करण को लोड करना चाहता हूं। –

+0

फिर पहली तस्वीर को 'डिस्प्ले: none;' पर सेट करें और 'डिस्प्ले: ब्लॉक' के लिए नई तस्वीर सेट करें, 'अगर आपने इसे लागू करने के बारे में सुनिश्चित नहीं हैं, तो मैंने पोस्ट को JSFiddle के साथ संपादित किया है। – NullDev

+0

लेकिन क्या यह दोनों छवियों को लोड नहीं करेगा, और प्रदर्शन धीमा कर देगा? क्योंकि इस मामले में यह मेरे सामने वाले पृष्ठ के लिए है जिसमें इस पर कुछ मीडिया हैं। :) –

2

आप स्क्रीन आकार के आधार पर कक्षाओं को लागू करने के लिए मीडिया प्रश्नों का उपयोग कर सकते हैं।

media query की
#img { 
    display: none; 
} 

/* Large Devices, Wide Screens */ 
    @media only screen and (max-width : 1200px) { 

} 

/* Medium Devices, Desktops */ 
@media only screen and (max-width : 992px) { 

} 

/* Small Devices, Tablets */ 
@media only screen and (max-width : 768px) { 

} 

/* Extra Small Devices, Phones */ 
@media only screen and (max-width : 480px) { 
    #img{ 
    display: block; 
    } 

} 

/* Custom, iPhone Retina */ 
@media only screen and (max-width : 320px) { 

} 
+0

अरे, आपके उत्तर के लिए धन्यवाद! लेकिन अगर मैं इस दृष्टिकोण को लेना चाहता हूं तो यह पृष्ठ पर सभी छवियों को लोड नहीं करेगा और प्रदर्शन धीमा कर देगा? मैं सोच रहा था कि शुद्ध सीएसएस का उपयोग करते हुए, मैं पृष्ठ पर केवल आवश्यक छवि लोड कर सकता हूं। –

+0

आपकी सभी छवियां शुरुआत में लोड होंगी इससे कोई फर्क नहीं पड़ता कि आपको अपनी छवियों को अनुकूलित करने की आवश्यकता होगी ताकि वे मोबाइल या डेस्कटॉप पर जो भी दिखा रहे हैं, इस पर ध्यान दिए बिना साइट को धीमा नहीं करेंगे। लेकिन इससे आपको छिपाने और दिखाने की अनुमति देनी चाहिए कि आपको स्क्रीन आकार पर क्या चाहिए। – Conor

+0

आह मैं देखता हूँ। जानकारी के लिए धन्यवाद! ^^ –

4

उपयोग करें नीचे के रूप में अलग अलग screen resolutions पर background-image बदलने के लिए,

div{ 
 
    width:100%; 
 
    height:400px; 
 
    background:url('http://placehold.it/350x150/f22/fff'); 
 
    background-size:100% 100%; 
 
} 
 
@media screen and (max-width : 480px){ 
 
div{ 
 
    background:url('http://placehold.it/480x150/f12/fff'); 
 
    background-size:100% 100%; 
 
} 
 
} 
 
@media screen and (max-width : 320px){ 
 
div{ 
 
    background:url('http://placehold.it/320x150/e12/fff'); 
 
    background-size:100% 100%; 
 
} 
 
}
<div></div>

चेक इस jsFiddle

+0

@ एसआरईएस आप मुख्य पृष्ठ div दोनों का चयन करते हैं और मीडिया क्वेरी का उपयोग पृष्ठभूमि-छवि यूआरएल अलग-अलग ब्रेकपॉइंट्स में बदलते हैं। – frnt

+0

आपके उत्तर के लिए धन्यवाद! :) मैं इस तरह के दृष्टिकोण को लागू करने की कोशिश करूंगा! : डी –

+0

आपका स्वागत है @ एस रेयेस :-) – frnt

1

@NullDev पर आपकी टिप्पणी के आधार पर, आपको उचित आकार पर एक div बनाने की आवश्यकता होगी और सीएसएस के माध्यम से लोड की गई स्थिति के लिए छवि को पृष्ठभूमि पर पृष्ठभूमि छवि के रूप में लागू करने की आवश्यकता होगी।

उदाहरण के लिए:

HTML:

<div id="image"></div> 

सीएसएस:

#image { 
    position: relative; 
    width: 400px; 
    height: 400px; 
    background-image:url('/path/to/image'); 
    background-size: cover; 
    background-repeat: no-repeat; 
} 

फिर मीडिया क्वेरी लागू होते हैं:

@media only screen and (max-width : 480px) { 
    #image{ 
    background-image:url('/path/to/mobile/image'); 
    } 
} 

मुझे आशा है कि इस मदद करता है।

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