Home >Web Front-end >JS Tutorial >Share Images with a Pinterest Call-to-action
This article shows how to add a Pinterest call-to-action to images, appearing only on hover, to boost social media engagement. It emphasizes a clean, user-friendly design and avoids unnecessary dependencies.
Key Benefits:
Why Shareable Images Matter:
High-quality, engaging content is crucial. Social sharing buttons enhance this, allowing users to easily share individual elements (like images) on platforms like Pinterest. Pinterest, in particular, benefits from visually appealing content.
Creating Pinterest-Friendly Images:
A Pinterest Pin URL consists of:
https://www.pinterest.com/pin/create/button/
url
: Your page URL (URL-encoded).media
: Image URL (URL-encoded).description
: Descriptive text (URL-encoded, ideally under 200 characters).While Pinterest's JavaScript offers extra features, this approach uses minimal code for simplicity.
The Hard-Coded (Less Efficient) Method:
This method involves manually adding HTML for each image:
<code class="language-html"><a href="https://www.php.cn/link/af3b0930d888e15a07a36b9987b70858" target="_blank" class="pinterest-anchor pinterest-hidden"> <div class="pinterest-logo"></div> </a> <img src="" data-pin="pinIt" alt=""></code>
CSS styles the button (pinterest-anchor
, pinterest-hidden
, pinterest-logo
), positioning it and controlling its visibility on hover. The Pinterest logo is embedded as a base64 encoded image within the CSS.
The Automated (More Efficient) Method (with jQuery):
This jQuery code dynamically generates the Pinterest link for each image with the data-pin="pinIt"
attribute:
<code class="language-javascript">$("img[data-pin='pinIt']").each(function() { $(this).before('<a href="https://www.php.cn/link/c84f1f1c3914a66236542d1166b01780'%20+%20encodeURIComponent(%24(location).attr(" encodeuricomponent target="_blank"><div class="pinterest-logo"></div></a>'); $(this).hover(function() { $(this).prev().css("display", "block"); }, function() { $(this).prev().css("display", "none"); }); });</code>
The Automated (More Efficient) Method (with Vanilla JavaScript):
This vanilla JavaScript equivalent achieves the same result without jQuery:
<code class="language-javascript">var pinables = document.querySelectorAll('img'); Array.prototype.forEach.call(pinables, function(el, i){ data = el.dataset; if (data.pin=='pinIt') { el.insertAdjacentHTML('beforebegin', '<a href="https://www.php.cn/link/c84f1f1c3914a66236542d1166b01780'%20+%20encodeURIComponent(window.location.href)%20+%20'&media='%20+%20encodeURIComponent(el.src)%20+%20'&description='%20+%20encodeURIComponent(el.alt)%20+%20'" target="_blank"><div class="pinterest-logo"></div></a>'); el.onmouseover = function(){ this.previousSibling.style.display='block'; } el.onmouseout = function(){ this.previousSibling.style.display='none'; } } });</code>
Further Considerations:
While this approach is clean and unobtrusive, opening the share in a new window might disrupt user flow. A pop-up alternative could be considered.
Frequently Asked Questions (FAQs): (These are summarized for brevity, maintaining the original meaning.)
This revised output maintains the original meaning while improving clarity and flow, suitable for a more professional presentation. The image URLs are preserved.
The above is the detailed content of Share Images with a Pinterest Call-to-action. For more information, please follow other related articles on the PHP Chinese website!